Trait ContextExt

Source
pub trait ContextExt<'lua> {
    // Required methods
    fn create_async_function<Arg, Ret, RetFut, F>(
        self,
        func: F,
    ) -> Result<Function<'lua>>
       where Arg: FromLuaMulti<'lua>,
             Ret: ToLuaMulti<'lua>,
             RetFut: 'static + Send + Future<Output = Result<Ret>>,
             F: 'static + Send + Fn(Context<'lua>, Arg) -> RetFut;
    fn create_async_function_mut<Arg, Ret, RetFut, F>(
        self,
        func: F,
    ) -> Result<Function<'lua>>
       where Arg: FromLuaMulti<'lua>,
             Ret: ToLuaMulti<'lua>,
             RetFut: 'static + Send + Future<Output = Result<Ret>>,
             F: 'static + Send + FnMut(Context<'lua>, Arg) -> RetFut;
}
Expand description

Extension trait for rlua::Context

Required Methods§

Source

fn create_async_function<Arg, Ret, RetFut, F>( self, func: F, ) -> Result<Function<'lua>>
where Arg: FromLuaMulti<'lua>, Ret: ToLuaMulti<'lua>, RetFut: 'static + Send + Future<Output = Result<Ret>>, F: 'static + Send + Fn(Context<'lua>, Arg) -> RetFut,

Create an asynchronous function.

This works exactly like Context::create_function, except that the function returns a Future instead of just the result. Note that when this function is being called from Lua, it will generate a coroutine, that will prevent any use of coroutines in the said Lua code and is designed to be called from an async-compliant caller such as FunctionExt::call_async

Source

fn create_async_function_mut<Arg, Ret, RetFut, F>( self, func: F, ) -> Result<Function<'lua>>
where Arg: FromLuaMulti<'lua>, Ret: ToLuaMulti<'lua>, RetFut: 'static + Send + Future<Output = Result<Ret>>, F: 'static + Send + FnMut(Context<'lua>, Arg) -> RetFut,

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.

Implementations on Foreign Types§

Source§

impl<'lua> ContextExt<'lua> for Context<'lua>

Source§

fn create_async_function<Arg, Ret, RetFut, F>( self, func: F, ) -> Result<Function<'lua>>
where Arg: FromLuaMulti<'lua>, Ret: ToLuaMulti<'lua>, RetFut: 'static + Send + Future<Output = Result<Ret>>, F: 'static + Send + Fn(Context<'lua>, Arg) -> RetFut,

Source§

fn create_async_function_mut<Arg, Ret, RetFut, F>( self, func: F, ) -> Result<Function<'lua>>
where Arg: FromLuaMulti<'lua>, Ret: ToLuaMulti<'lua>, RetFut: 'static + Send + Future<Output = Result<Ret>>, F: 'static + Send + FnMut(Context<'lua>, Arg) -> RetFut,

Implementors§