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