Macro impl_enum_into_lua

Source
macro_rules! impl_enum_into_lua {
    (
        $enum:ident {
            $(
                $name:ident
                    $( ( $($tuple_pat:pat),* ) )?
                    $( { $($struct_pat:pat),* } )?
                    $( => $data:expr )?
            ),* $(,)?
        }
    ) => { ... };
    (@value $lua:ident , $val:expr) => { ... };
    (@value $lua:ident) => { ... };
}
Expand description

Implements IntoLua for enums by mapping each variant to a Lua table formed like { variant_name, variant_data }

#[derive(Clone, Debug)]
pub enum MyValue {
    Nil,
    Str(String),
}

impl_enum_into_lua! {
    MyValue {
        Nil,
        // this will just forward the one tuple variant forwards
        Str(s) => s,
    }
}