wrap_task

Macro wrap_task 

Source
macro_rules! wrap_task {
    ($ vis : vis struct $ name : ident ; impl Task { $ ($ (# [$ 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 Task { $ ($ (# [$ attrs_name : meta]) * fn $ method_name : ident (& $ self : ident $ (, $ arg_name : ident : $ arg_type : ty) * $ (,) ?) $ (-> $ return_type : ty) ? { $ ($ body : tt) * }) * }) => { ... };
}
Expand description

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

ยงExample


wrap_task! {
    struct MyTask {
        payload: String,
    }

    impl Task {
        // ...
    }
}

fn make_my_struct() -> Task {
    MyTask::new("payload".to_string())
}