From 03b16db10ae01d409afa4ee81d55ea21b5cc36c6 Mon Sep 17 00:00:00 2001 From: Quaternions <krakow20@gmail.com> Date: Tue, 22 Apr 2025 16:08:45 -0700 Subject: [PATCH] roblox_emulator: use a type alias to minimize errors --- lib/roblox_emulator/src/context.rs | 1 + lib/roblox_emulator/src/runner/instance/instance.rs | 2 +- lib/roblox_emulator/src/runner/runner.rs | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/roblox_emulator/src/context.rs b/lib/roblox_emulator/src/context.rs index 6587e9f..5e07f7c 100644 --- a/lib/roblox_emulator/src/context.rs +++ b/lib/roblox_emulator/src/context.rs @@ -26,6 +26,7 @@ impl Services{ } } +pub type LuaAppData=&'static mut WeakDom; pub struct Context{ pub(crate)dom:WeakDom, pub(crate)services:Services, diff --git a/lib/roblox_emulator/src/runner/instance/instance.rs b/lib/roblox_emulator/src/runner/instance/instance.rs index 36df0dd..b8674c9 100644 --- a/lib/roblox_emulator/src/runner/instance/instance.rs +++ b/lib/roblox_emulator/src/runner/instance/instance.rs @@ -37,7 +37,7 @@ pub fn set_globals(lua:&mlua::Lua,globals:&mlua::Table)->Result<(),mlua::Error>{ // LMAO look at this function! pub fn dom_mut<T>(lua:&mlua::Lua,mut f:impl FnMut(&mut WeakDom)->mlua::Result<T>)->mlua::Result<T>{ - let mut dom=lua.app_data_mut::<&'static mut WeakDom>().ok_or_else(||mlua::Error::runtime("DataModel missing"))?; + let mut dom=lua.app_data_mut::<crate::context::LuaAppData>().ok_or_else(||mlua::Error::runtime("DataModel missing"))?; f(*dom) } diff --git a/lib/roblox_emulator/src/runner/runner.rs b/lib/roblox_emulator/src/runner/runner.rs index 8d5e8aa..93d7e6b 100644 --- a/lib/roblox_emulator/src/runner/runner.rs +++ b/lib/roblox_emulator/src/runner/runner.rs @@ -60,7 +60,7 @@ impl Runner{ globals.set("workspace",super::instance::Instance::new(context.services.workspace)).map_err(Error::RustLua)?; } //this makes set_app_data shut up about the lifetime - self.lua.set_app_data::<&'static mut rbx_dom_weak::WeakDom>(unsafe{core::mem::transmute(&mut context.dom)}); + self.lua.set_app_data::<crate::context::LuaAppData>(unsafe{core::mem::transmute(&mut context.dom)}); #[cfg(feature="run-service")] self.lua.set_app_data::<crate::scheduler::Scheduler>(crate::scheduler::Scheduler::default()); Ok(Runnable{ @@ -77,7 +77,7 @@ pub struct Runnable<'a>{ } impl Runnable<'_>{ pub fn drop_context(self)->Runner{ - self.lua.remove_app_data::<&'static mut rbx_dom_weak::WeakDom>(); + self.lua.remove_app_data::<crate::context::LuaAppData>(); #[cfg(feature="run-service")] self.lua.remove_app_data::<crate::scheduler::Scheduler>(); Runner{