enumeration

Attribute Macro enumeration 

Source
#[enumeration]
Expand description

Implements a helper function _to_mlua_variants for a Rust `enum’.

This function registers all unit variants (e.g., MyEnum::VariantA) as static properties on the Lua UserData. This allows accessing them in Lua as MyEnum.VariantA.

Variants with data (e.g., MyEnum::VariantB(i32)) are not automatically registered. You should expose these by creating a static constructor function in an #[mlua_magic::implementation] block.

§Example:

#[derive(Clone, Copy)] // Required for UserData methods
#[mlua_magic::enumeration]
enum MyEnum {
    VariantA,
    VariantB(i32),
}

#[mlua_magic::implementation]
impl MyEnum {
    // This will expose `MyEnum.new_variant_b(123)` in Lua
    pub fn new_variant_b(val: i32) -> Self {
        Self::VariantB(val)
    }
}

This is intended to be used with impl mlua::UserData.