pub struct LuaThread<'lua>(_);
Handle to an internal Lua thread (or coroutine).
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
returns values from its main function, returns those.
let lua = Lua::new();
let thread: Thread = lua.eval(r#"
coroutine.create(function(arg)
assert(arg == 42)
local yieldarg = coroutine.yield(123)
assert(yieldarg == 43)
return 987
end)
"#, None).unwrap();
assert_eq!(thread.resume::<_, u32>(42).unwrap(), 123);
assert_eq!(thread.resume::<_, u32>(43).unwrap(), 987);
match thread.resume::<_, u32>(()) {
Err(Error::CoroutineInactive) => {},
unexpected => panic!("unexpected result {:?}", unexpected),
}
Gets the status of the thread.
Formats the value using the given formatter. Read more
Performs copy-assignment from source. Read more
Creates owned data from borrowed data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (toowned_clone_into)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (try_from)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from)
🔬 This is a nightly-only experimental API. (get_type_id)
this method will likely be replaced by an associated static