wrap_domvisitor

Macro wrap_domvisitor 

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

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

ยงExample


wrap_domvisitor! {
    struct MyDomvisitor {
        payload: String,
    }

    impl Domvisitor {
        // ...
    }
}

fn make_my_struct() -> Domvisitor {
    MyDomvisitor::new("payload".to_string())
}