diff --git a/lib/roblox_emulator/src/context.rs b/lib/roblox_emulator/src/context.rs index 297b9af..1c1db38 100644 --- a/lib/roblox_emulator/src/context.rs +++ b/lib/roblox_emulator/src/context.rs @@ -1,10 +1,6 @@ +use crate::util::static_ustr; use rbx_dom_weak::{types::Ref,InstanceBuilder,WeakDom}; -// disallow non-static lifetimes -fn static_ustr(s:&'static str)->rbx_dom_weak::Ustr{ - rbx_dom_weak::ustr(s) -} - #[derive(Debug)] pub enum ServicesError{ WorkspaceNotFound, diff --git a/lib/roblox_emulator/src/lib.rs b/lib/roblox_emulator/src/lib.rs index fd38760..7fdd9dd 100644 --- a/lib/roblox_emulator/src/lib.rs +++ b/lib/roblox_emulator/src/lib.rs @@ -1,3 +1,4 @@ +mod util; pub mod runner; pub mod context; #[cfg(feature="run-service")] diff --git a/lib/roblox_emulator/src/runner/instance/instance.rs b/lib/roblox_emulator/src/runner/instance/instance.rs index 02d75eb..f59daa4 100644 --- a/lib/roblox_emulator/src/runner/instance/instance.rs +++ b/lib/roblox_emulator/src/runner/instance/instance.rs @@ -4,14 +4,10 @@ use mlua::{FromLua,FromLuaMulti,IntoLua,IntoLuaMulti}; use rbx_types::Ref; use rbx_dom_weak::{Ustr,InstanceBuilder,WeakDom}; +use crate::util::static_ustr; use crate::runner::vector3::Vector3; use crate::runner::number::Number; -// disallow non-static lifetimes -fn static_ustr(s:&'static str)->rbx_dom_weak::Ustr{ - rbx_dom_weak::ustr(s) -} - pub fn set_globals(lua:&mlua::Lua,globals:&mlua::Table)->Result<(),mlua::Error>{ //class functions store lua.set_app_data(ClassMethodsStore::default()); diff --git a/lib/roblox_emulator/src/runner/runner.rs b/lib/roblox_emulator/src/runner/runner.rs index 8220fe6..75a8521 100644 --- a/lib/roblox_emulator/src/runner/runner.rs +++ b/lib/roblox_emulator/src/runner/runner.rs @@ -1,4 +1,5 @@ use crate::context::Context; +use crate::util::static_ustr; #[cfg(feature="run-service")] use crate::scheduler::scheduler_mut; @@ -125,7 +126,7 @@ impl Runnable<'_>{ pub fn run_service_step(&self)->Result<(),mlua::Error>{ let render_stepped_signal=super::instance::instance::dom_mut(&self.lua,|dom|{ let run_service=super::instance::instance::find_first_child_of_class(dom,dom.root(),"RunService").ok_or_else(||mlua::Error::runtime("RunService missing"))?; - Ok(match run_service.userdata.get(&rbx_dom_weak::ustr("RenderStepped")){ + Ok(match run_service.userdata.get(&static_ustr("RenderStepped")){ Some(render_stepped)=>Some(render_stepped.borrow::<super::script_signal::ScriptSignal>()?.clone()), None=>None }) diff --git a/lib/roblox_emulator/src/util.rs b/lib/roblox_emulator/src/util.rs new file mode 100644 index 0000000..92ac42d --- /dev/null +++ b/lib/roblox_emulator/src/util.rs @@ -0,0 +1,3 @@ +pub fn static_ustr(s:&'static str)->rbx_dom_weak::Ustr{ + rbx_dom_weak::ustr(s) +}