wrap_focus_handler

Macro wrap_focus_handler 

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

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

ยงExample


wrap_focus_handler! {
    struct MyFocusHandler {
        payload: String,
    }

    impl FocusHandler {
        // ...
    }
}

fn make_my_struct() -> FocusHandler {
    MyFocusHandler::new("payload".to_string())
}