From b747ca8af52129876b577a4f20f7105a05c6b002 Mon Sep 17 00:00:00 2001 From: Nathan Reiner Date: Sat, 10 Aug 2024 15:41:31 +0200 Subject: add global fileloader registry --- src/sheet/register.rs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src/sheet/register.rs') 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>>> = 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) { -- cgit v1.2.3-70-g09d2