diff --git a/lib/sdk/src/filetype/lua.rs b/lib/sdk/src/filetype/lua.rs index ea072b6..f2f4ef5 100644 --- a/lib/sdk/src/filetype/lua.rs +++ b/lib/sdk/src/filetype/lua.rs @@ -20,15 +20,19 @@ where } #[tracing::instrument(skip_all)] -pub fn compile(name: String, code: S) -> Result +pub fn compile(name: S, code: C) -> Result where - S: AsRef, + S: ToString, + C: AsRef, { + let name = name.to_string(); + let code = code.as_ref(); + let bytecode = unsafe { let state = lua::luaL_newstate(); lua::luaL_openlibs(state); - lua::lua_pushstring(state, code.as_ref().as_ptr() as _); + lua::lua_pushstring(state, code.as_ptr() as _); lua::lua_setglobal(state, b"code\0".as_ptr() as _); lua::lua_pushstring(state, name.as_ptr() as _);