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{