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