1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#[macro_export] macro_rules! trait_marker { ( $(#[$meta:meta])* $name:ident : $($bounds:tt)+ ) => { $(#[$meta])* pub trait $name: $($bounds)+ {} impl<T> $name for T where T: $($bounds)+ {} }; } pub mod prelude { pub use crate::trait_marker; }