wrap_preference_observer

Macro wrap_preference_observer 

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

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

ยงExample


wrap_preference_observer! {
    struct MyPreferenceObserver {
        payload: String,
    }

    impl PreferenceObserver {
        // ...
    }
}

fn make_my_struct() -> PreferenceObserver {
    MyPreferenceObserver::new("payload".to_string())
}