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