✨ promised fn
This commit is contained in:
parent
e3393f1e09
commit
0c190df5d7
4 changed files with 39 additions and 1 deletions
|
@ -84,6 +84,7 @@ pub fn worker(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||
let init_fn = format_ident!("{}_init", fn_name);
|
||||
let init_fn_scoped = format_ident!("{}_init_scoped", fn_name);
|
||||
let fn_scope_struct = format_ident!("{}_Scoped", fn_name);
|
||||
let fn_name_async = format_ident!("{}_async", fn_name);
|
||||
let shutdown_fn = format_ident!("{}_shutdown", fn_name);
|
||||
|
||||
let param_unpacking = param_names.iter().enumerate().map(|(i, name)| {
|
||||
|
@ -112,6 +113,12 @@ pub fn worker(_attr: TokenStream, item: TokenStream) -> TokenStream {
|
|||
serde_json::from_value(comrade::UNION.get(stringify!(#fn_name)).unwrap().send(i)).unwrap()
|
||||
}
|
||||
|
||||
#[doc = "Will run the function non blocking returning a `JobResult<_>` for fetching a result later."]
|
||||
pub fn #fn_name_async(#(#param_names: #param_types),*) -> comrade::job::JobResult<comrade::serde_json::Value> {
|
||||
let i: comrade::serde_json::Value = comrade::serde_json::to_value( (#(#param_names),*) ).unwrap();
|
||||
comrade::UNION.get(stringify!(#fn_name)).unwrap().send_async(i)
|
||||
}
|
||||
|
||||
fn #wrapper_fn(task: JobOrder<comrade::serde_json::Value, comrade::serde_json::Value>) {
|
||||
let i = task.param.clone();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue