1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#[macro_export] macro_rules! simple_error { ($name:ident {$($item:ident ($type:ty),)*}) => { #[derive(Debug)] pub enum $name { $($item($type),)* } $( impl From<$type> for $name { fn from(e: $type) -> Self { $name::$item(e) } } )* }; }