summaryrefslogtreecommitdiff
path: root/src/sheet/register.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sheet/register.rs')
-rw-r--r--src/sheet/register.rs10
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) {