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