wrap_completion_callback

Macro wrap_completion_callback 

Source
macro_rules! wrap_completion_callback {
    ($ vis : vis struct $ name : ident ; impl CompletionCallback { $ ($ (# [$ attrs_name : meta]) * fn $ method_name : ident (& $ self : ident $ (, $ arg_name : ident : $ arg_type : ty) * $ (,) ?) $ (-> $ return_type : ty) ? { $ ($ body : tt) * }) * }) => { ... };
    ($ vis : vis struct $ name : ident $ (< $ ($ generic_type : ident : $ first_generic_type_bound : tt $ (+ $ generic_type_bound : tt) *) , + $ (,) ? >) ? { $ ($ field_vis : vis $ field_name : ident : $ field_type : ty) , * $ (,) ? } impl CompletionCallback { $ ($ (# [$ attrs_name : meta]) * fn $ method_name : ident (& $ self : ident $ (, $ arg_name : ident : $ arg_type : ty) * $ (,) ?) $ (-> $ return_type : ty) ? { $ ($ body : tt) * }) * }) => { ... };
}
Expand description

Implement the WrapCompletionCallback trait for the specified struct. You can declare more members for your struct, and in the impl CompletionCallback block you can override default methods implemented by the ImplCompletionCallback trait.

ยงExample


wrap_completion_callback! {
    struct MyCompletionCallback {
        payload: String,
    }

    impl CompletionCallback {
        // ...
    }
}

fn make_my_struct() -> CompletionCallback {
    MyCompletionCallback::new("payload".to_string())
}