use mlua::UserData; use super::GlobalState; #[derive(Debug, Default)] pub struct LogState { pub visible: bool, } impl LogState { pub const fn new() -> Self { Self { visible: false } } } macro_rules! cfg { () => { GlobalState::instance().log }; } macro_rules! cfg_mut { () => { GlobalState::instance_mut().log }; } impl UserData for LogState { fn add_fields<'lua, F: mlua::prelude::LuaUserDataFields<'lua, Self>>(fields: &mut F) { fields.add_field_function_get("visible", |_, _| Ok(cfg!().visible)); fields.add_field_function_set("visible", |_, _, visible: bool| { cfg_mut!().visible = visible; Ok(()) }); } }