diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-08-10 15:41:31 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-08-10 15:41:31 +0200 |
| commit | b747ca8af52129876b577a4f20f7105a05c6b002 (patch) | |
| tree | d976a5c3cd135dfecb1014246936bb7a8b525c4b /src/sheet/register.rs | |
| parent | 4763d8ce3b833df1e7321a407b08666f69657fdb (diff) | |
add global fileloader registry
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) { |