Skip to main content

Crate luars_derive

Crate luars_derive 

Source
Expand description

Procedural macros for luars userdata system.

Provides #[derive(LuaUserData)] to auto-generate UserDataTrait implementations for Rust structs, exposing public fields and methods to Lua.

§Attributes

  • #[lua(skip)] on a field — exclude it from Lua access
  • #[lua(readonly)] on a field — only allow get, not set
  • #[lua(name = "...")] on a field — use a custom Lua-visible name

§Auto-detected trait impls

Use #[lua_impl(...)] on the struct to declare which Rust traits should map to Lua metamethods:

  • Display__tostring
  • PartialEq__eq
  • PartialOrd__lt, __le

§Example

use luars_derive::LuaUserData;

#[derive(LuaUserData, PartialEq, PartialOrd)]
#[lua_impl(Display, PartialEq, PartialOrd)]
struct Point {
    pub x: f64,
    pub y: f64,
    #[lua(skip)]
    internal_id: u32,
}

Derive Macros§

LuaUserData
Derive UserDataTrait for a struct, exposing public fields to Lua.