Trait TableExt

Source
pub trait TableExt<'lua>: Sealed {
    // Required methods
    fn call<A, R>(&self, args: A) -> Result<R, Error>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua>;
    fn call_method<A, R>(&self, name: &str, args: A) -> Result<R, Error>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua>;
    fn call_function<A, R>(&self, name: &str, args: A) -> Result<R, Error>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua>;
}
Expand description

An extension trait for Tables that provides a variety of convenient functionality.

Required Methods§

Source

fn call<A, R>(&self, args: A) -> Result<R, Error>
where A: IntoLuaMulti<'lua>, R: FromLuaMulti<'lua>,

Calls the table as function assuming it has __call metamethod.

The metamethod is called with the table as its first argument, followed by the passed arguments.

Source

fn call_method<A, R>(&self, name: &str, args: A) -> Result<R, Error>
where A: IntoLuaMulti<'lua>, R: FromLuaMulti<'lua>,

Gets the function associated to key from the table and executes it, passing the table itself along with args as function arguments.

This is a shortcut for table.get::<_, Function>(key)?.call((table.clone(), arg1, ..., argN))

This might invoke the __index metamethod.

Source

fn call_function<A, R>(&self, name: &str, args: A) -> Result<R, Error>
where A: IntoLuaMulti<'lua>, R: FromLuaMulti<'lua>,

Gets the function associated to key from the table and executes it, passing args as function arguments.

This is a shortcut for table.get::<_, Function>(key)?.call(args)

This might invoke the __index metamethod.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'lua> TableExt<'lua> for Table<'lua>