Skip to main content

ContextExt

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".

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§