wrap_setting_observer

Macro wrap_setting_observer 

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

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

ยงExample


wrap_setting_observer! {
    struct MySettingObserver {
        payload: String,
    }

    impl SettingObserver {
        // ...
    }
}

fn make_my_struct() -> SettingObserver {
    MySettingObserver::new("payload".to_string())
}