Trait mlua::AnyUserDataExt

source ·
pub trait AnyUserDataExt<'lua>: Sealed {
    // Required methods
    fn get<K: IntoLua<'lua>, V: FromLua<'lua>>(&self, key: K) -> Result<V>;
    fn set<K: IntoLua<'lua>, V: IntoLua<'lua>>(
        &self,
        key: K,
        value: V
    ) -> Result<()>;
    fn call<A, R>(&self, args: A) -> Result<R>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua>;
    fn call_async<A, R>(&self, args: A) -> LocalBoxFuture<'lua, Result<R>>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua> + 'lua;
    fn call_method<A, R>(&self, name: &str, args: A) -> Result<R>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua>;
    fn call_async_method<A, R>(
        &self,
        name: &str,
        args: A
    ) -> LocalBoxFuture<'lua, Result<R>>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua> + 'lua;
    fn call_function<A, R>(&self, name: &str, args: A) -> Result<R>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua>;
    fn call_async_function<A, R>(
        &self,
        name: &str,
        args: A
    ) -> LocalBoxFuture<'lua, Result<R>>
       where A: IntoLuaMulti<'lua>,
             R: FromLuaMulti<'lua> + 'lua;
}
Expand description

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

Required Methods§

source

fn get<K: IntoLua<'lua>, V: FromLua<'lua>>(&self, key: K) -> Result<V>

Gets the value associated to key from the userdata, assuming it has __index metamethod.

source

fn set<K: IntoLua<'lua>, V: IntoLua<'lua>>( &self, key: K, value: V ) -> Result<()>

Sets the value associated to key in the userdata, assuming it has __newindex metamethod.

source

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

Calls the userdata as a function assuming it has __call metamethod.

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

source

fn call_async<A, R>(&self, args: A) -> LocalBoxFuture<'lua, Result<R>>
where A: IntoLuaMulti<'lua>, R: FromLuaMulti<'lua> + 'lua,

Available on crate feature async only.

Asynchronously calls the userdata as a function assuming it has __call metamethod.

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

source

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

Calls the userdata method, assuming it has __index metamethod and a function associated to name.

source

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

Available on crate feature async only.

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

Requires feature = "async"

This might invoke the __index metamethod.

source

fn call_function<A, R>(&self, name: &str, args: A) -> Result<R>
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.

source

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

Available on crate feature async only.

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

Requires feature = "async"

This might invoke the __index metamethod.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<'lua> AnyUserDataExt<'lua> for AnyUserData<'lua>