diff options
| author | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-08-01 20:13:55 +0200 |
|---|---|---|
| committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2024-08-01 20:13:55 +0200 |
| commit | a807d4e6fb96c4d8b8585b7dbb862e53486562ec (patch) | |
| tree | 92481d73423fd925f4dd034d68cbfd2e30e216d5 /src/lua/ownedfunction.rs | |
| parent | 417cee4eeeaf7516dfeb59cdbe34fed18f30e0f7 (diff) | |
add evalsto
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() + } +} |