wrap_dialog_handler

Macro wrap_dialog_handler 

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

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

ยงExample


wrap_dialog_handler! {
    struct MyDialogHandler {
        payload: String,
    }

    impl DialogHandler {
        // ...
    }
}

fn make_my_struct() -> DialogHandler {
    MyDialogHandler::new("payload".to_string())
}