diff options
Diffstat (limited to 'src/sheet/register.rs')
| -rw-r--r-- | src/sheet/register.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/sheet/register.rs b/src/sheet/register.rs index c43720d..aaf9c35 100644 --- a/src/sheet/register.rs +++ b/src/sheet/register.rs @@ -2,7 +2,7 @@ use std::sync::{Arc, RwLock}; use mlua::{Table, UserData, Value}; -use super::{cell::Cell, Sheet, luaref::SheetLuaRef}; +use super::{cell::Cell, loader::Loader, luaref::SheetLuaRef, Sheet}; static REGISTER: RwLock<Vec<Arc<RwLock<Sheet>>>> = RwLock::new(Vec::new()); @@ -59,7 +59,7 @@ impl Register { impl UserData for Register { fn add_methods<'lua, M: mlua::UserDataMethods<'lua, Self>>(methods: &mut M) { - methods.add_function_mut("create", |lua, table: Table| { + methods.add_function("create", |lua, table: Table| { let id = Register::create_from_table(table)?; let luaref = SheetLuaRef::new(id); if let Ok(ud) = lua.create_userdata(luaref) { @@ -69,7 +69,11 @@ impl UserData for Register { } }); - methods.add_function_mut("get", |lua, id: SheetId| { + methods.add_function("open", |lua, path: String| { + Ok(Loader::get().load_sheet(path, lua)) + }); + + methods.add_function("get", |lua, id: SheetId| { if Register::get(id).is_some() { let luaref = SheetLuaRef::new(id); if let Ok(ud) = lua.create_userdata(luaref) { |