macro_rules! derive_enum_from {
    ($enum:ident::$variant:ident) => { ... };
    ($enum:ident::$variant:ident, Box<$type:ty>) => { ... };
    ($enum:ident::$variant:ident, $type:ty) => { ... };
    ($enum:ident::$variant:ident, T: Into<$type:ident>) => { ... };
}