pub struct LuaFunction<'lua>(_);Expand description
Handle to an internal Lua function.
Implementations
sourceimpl<'lua> Function<'lua>
impl<'lua> Function<'lua>
sourcepub fn call<A, R>(&self, args: A) -> Result<R, Error>where
A: ToLuaMulti<'lua>,
R: FromLuaMulti<'lua>,
pub fn call<A, R>(&self, args: A) -> Result<R, Error>where
A: ToLuaMulti<'lua>,
R: FromLuaMulti<'lua>,
Calls the function, passing args as function arguments.
The function’s return values are converted to the generic type R.
Examples
Call Lua’s built-in tostring function:
let lua = Lua::new();
let globals = lua.globals();
let tostring: Function = globals.get("tostring")?;
assert_eq!(tostring.call::<_, String>(123)?, "123");
Call a function with multiple arguments:
let lua = Lua::new();
let sum: Function = lua.eval(r#"
function(a, b)
return a + b
end
"#, None)?;
assert_eq!(sum.call::<_, u32>((3, 4))?, 3 + 4);
sourcepub fn bind<A>(&self, args: A) -> Result<Function<'lua>, Error>where
A: ToLuaMulti<'lua>,
pub fn bind<A>(&self, args: A) -> Result<Function<'lua>, Error>where
A: ToLuaMulti<'lua>,
Returns a function that, when called, calls self, passing args as the first set of
arguments.
If any arguments are passed to the returned function, they will be passed after args.
Examples
let lua = Lua::new();
let sum: Function = lua.eval(r#"
function(a, b)
return a + b
end
"#, None)?;
let bound_a = sum.bind(1)?;
assert_eq!(bound_a.call::<_, u32>(2)?, 1 + 2);
let bound_a_and_b = sum.bind(13)?.bind(57)?;
assert_eq!(bound_a_and_b.call::<_, u32>(())?, 13 + 57);
Trait Implementations
Auto Trait Implementations
impl<'lua> !RefUnwindSafe for Function<'lua>
impl<'lua> !Send for Function<'lua>
impl<'lua> !Sync for Function<'lua>
impl<'lua> Unpin for Function<'lua>
impl<'lua> !UnwindSafe for Function<'lua>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<'lua, T> FromLuaMulti<'lua> for Twhere
T: FromLua<'lua>,
impl<'lua, T> FromLuaMulti<'lua> for Twhere
T: FromLua<'lua>,
sourcefn from_lua_multi(values: MultiValue<'lua>, lua: &'lua Lua) -> Result<T, Error>
fn from_lua_multi(values: MultiValue<'lua>, lua: &'lua Lua) -> Result<T, Error>
Performs the conversion. Read more
sourceimpl<'lua, T> ToLuaMulti<'lua> for Twhere
T: ToLua<'lua>,
impl<'lua, T> ToLuaMulti<'lua> for Twhere
T: ToLua<'lua>,
sourcefn to_lua_multi(self, lua: &'lua Lua) -> Result<MultiValue<'lua>, Error>
fn to_lua_multi(self, lua: &'lua Lua) -> Result<MultiValue<'lua>, Error>
Performs the conversion.