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,
}
}