wrap_view_delegate

Macro wrap_view_delegate 

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

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

ยงExample


wrap_view_delegate! {
    struct MyViewDelegate {
        payload: String,
    }

    impl ViewDelegate {
        // ...
    }
}

fn make_my_struct() -> ViewDelegate {
    MyViewDelegate::new("payload".to_string())
}