summaryrefslogtreecommitdiffstats
path: root/tokio-macros
diff options
context:
space:
mode:
Diffstat (limited to 'tokio-macros')
-rw-r--r--tokio-macros/src/lib.rs10
1 files changed, 9 insertions, 1 deletions
diff --git a/tokio-macros/src/lib.rs b/tokio-macros/src/lib.rs
index 9a33c5fd..d8eedb02 100644
--- a/tokio-macros/src/lib.rs
+++ b/tokio-macros/src/lib.rs
@@ -49,6 +49,7 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
enum RuntimeType {
Single,
Multi,
+ Auto,
}
let input = syn::parse_macro_input!(item as syn::ItemFn);
@@ -71,7 +72,7 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
.into();
}
- let mut runtime = RuntimeType::Multi;
+ let mut runtime = RuntimeType::Auto;
for arg in args {
if let syn::NestedMeta::Meta(syn::Meta::Path(path)) = arg {
@@ -106,6 +107,13 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream {
rt.block_on(async { #body })
}
},
+ RuntimeType::Auto => quote! {
+ #(#attrs)*
+ fn #name() #ret {
+ let mut rt = tokio::runtime::__main::Runtime::new().unwrap();
+ rt.block_on(async { #body })
+ }
+ },
};
result.into()