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