wrap_navigation_entry_visitor

Macro wrap_navigation_entry_visitor 

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

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

ยงExample


wrap_navigation_entry_visitor! {
    struct MyNavigationEntryVisitor {
        payload: String,
    }

    impl NavigationEntryVisitor {
        // ...
    }
}

fn make_my_struct() -> NavigationEntryVisitor {
    MyNavigationEntryVisitor::new("payload".to_string())
}