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