macro_rules! define_label { ( $(#[$label_attr:meta])* $label_trait_name:ident, $interner_name:ident ) => { ... }; ( $(#[$label_attr:meta])* $label_trait_name:ident, $interner_name:ident, extra_methods: { $($trait_extra_methods:tt)* }, extra_methods_impl: { $($interned_extra_methods_impl:tt)* } ) => { ... }; }
Expand description
Macro to define a new label trait
ยงExample
define_label!(
/// Documentation of label trait
MyNewLabelTrait,
MY_NEW_LABEL_TRAIT_INTERNER
);
define_label!(
/// Documentation of another label trait
MyNewExtendedLabelTrait,
MY_NEW_EXTENDED_LABEL_TRAIT_INTERNER,
extra_methods: {
// Extra methods for the trait can be defined here
fn additional_method(&self) -> i32;
},
extra_methods_impl: {
// Implementation of the extra methods for Interned<dyn MyNewExtendedLabelTrait>
fn additional_method(&self) -> i32 {
0
}
}
);