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