macro_rules! wrap_browser_process_handler {
($ vis : vis struct $ name : ident ; impl BrowserProcessHandler { $ ($ (# [$ 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 BrowserProcessHandler { $ ($ (# [$ attrs_name : meta]) * fn $ method_name : ident (& $ self : ident $ (, $ arg_name : ident : $ arg_type : ty) * $ (,) ?) $ (-> $ return_type : ty) ? { $ ($ body : tt) * }) * }) => { ... };
}Expand description
Implement the WrapBrowserProcessHandler trait for the specified struct. You can declare more
members for your struct, and in the impl BrowserProcessHandler block you can override default
methods implemented by the ImplBrowserProcessHandler trait.
ยงExample
wrap_browser_process_handler! {
struct MyBrowserProcessHandler {
payload: String,
}
impl BrowserProcessHandler {
// ...
}
}
fn make_my_struct() -> BrowserProcessHandler {
MyBrowserProcessHandler::new("payload".to_string())
}