wrap_download_handler

Macro wrap_download_handler 

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

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

ยงExample


wrap_download_handler! {
    struct MyDownloadHandler {
        payload: String,
    }

    impl DownloadHandler {
        // ...
    }
}

fn make_my_struct() -> DownloadHandler {
    MyDownloadHandler::new("payload".to_string())
}