wrap_media_observer

Macro wrap_media_observer 

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

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

ยงExample


wrap_media_observer! {
    struct MyMediaObserver {
        payload: String,
    }

    impl MediaObserver {
        // ...
    }
}

fn make_my_struct() -> MediaObserver {
    MyMediaObserver::new("payload".to_string())
}