[−][src]Struct actix_lua::dev::rlua::prelude::LuaThread
Handle to an internal Lua thread (or coroutine).
Methods
impl<'lua> Thread<'lua>
[src]
pub fn resume<A, R>(&self, args: A) -> Result<R, Error> where
A: ToLuaMulti<'lua>,
R: FromLuaMulti<'lua>,
[src]
A: ToLuaMulti<'lua>,
R: FromLuaMulti<'lua>,
Resumes execution of this thread.
Equivalent to coroutine.resume
.
Passes args
as arguments to the thread. If the coroutine has called coroutine.yield
, it
will return these arguments. Otherwise, the coroutine wasn't yet started, so the arguments
are passed to its main function.
If the thread is no longer in Active
state (meaning it has finished execution or
encountered an error), this will return Err(CoroutineInactive)
, otherwise will return Ok
as follows:
If the thread calls coroutine.yield
, returns the values passed to yield
. If the thread
return
s values from its main function, returns those.
Examples
let thread: Thread = lua_context.load(r#" coroutine.create(function(arg) assert(arg == 42) local yieldarg = coroutine.yield(123) assert(yieldarg == 43) return 987 end) "#).eval().unwrap(); assert_eq!(thread.resume::<_, u32>(42).unwrap(), 123); assert_eq!(thread.resume::<_, u32>(43).unwrap(), 987); // The coroutine has now returned, so `resume` will fail match thread.resume::<_, u32>(()) { Err(Error::CoroutineInactive) => {}, unexpected => panic!("unexpected result {:?}", unexpected), }
pub fn status(&self) -> ThreadStatus
[src]
Gets the status of the thread.
Trait Implementations
impl<'lua> ToLua<'lua> for Thread<'lua>
[src]
impl<'lua> FromLua<'lua> for Thread<'lua>
[src]
impl<'lua> Debug for Thread<'lua>
[src]
impl<'lua> Clone for Thread<'lua>
[src]
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Erased for T
impl<'lua, T> FromLua for T where
T: 'static + UserData + Clone,
[src]
T: 'static + UserData + Clone,
impl<'lua, T> ToLuaMulti for T where
T: ToLua<'lua>,
[src]
T: ToLua<'lua>,
fn to_lua_multi(self, lua: Context<'lua>) -> Result<MultiValue<'lua>, Error>
[src]
impl<'lua, T> FromLuaMulti for T where
T: FromLua<'lua>,
[src]
T: FromLua<'lua>,
fn from_lua_multi(
values: MultiValue<'lua>,
lua: Context<'lua>
) -> Result<T, Error>
[src]
values: MultiValue<'lua>,
lua: Context<'lua>
) -> Result<T, Error>
impl<'lua, T> ToLua for T where
T: 'static + UserData + Send,
[src]
T: 'static + UserData + Send,