diff options
Diffstat (limited to 'src/lua/ownedfunction.rs')
| -rw-r--r-- | src/lua/ownedfunction.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lua/ownedfunction.rs b/src/lua/ownedfunction.rs new file mode 100644 index 0000000..a8d81cf --- /dev/null +++ b/src/lua/ownedfunction.rs @@ -0,0 +1,17 @@ +use mlua::{Function, Lua, RegistryKey, Value}; + +#[derive(Debug)] +pub struct OwnedFunction { + key: RegistryKey, +} + +impl OwnedFunction { + pub fn new<'lua>(value: Value<'lua>, lua: &'lua Lua) -> Self { + let key = lua.create_registry_value(value).unwrap(); + Self { key } + } + + pub fn get<'lua>(&self, lua: &'lua Lua) -> Function<'lua> { + lua.registry_value(&self.key).unwrap() + } +} |