Functions

Struct Functions 

Source
pub struct Functions {
    pub resume: LuaFunction,
    pub wrap: LuaFunction,
    pub spawn: LuaFunction,
    pub defer: LuaFunction,
    pub cancel: LuaFunction,
    pub exit: LuaFunction,
}
Expand description

A collection of lua functions that may be called to interact with a [Scheduler].

Note that these may all be implemented using LuaSchedulerExt, however, this struct is implemented using internal (non-public) APIs, and generally has better performance.

Fields§

§resume: LuaFunction

Implementation of coroutine.resume that handles async polling properly.

Defers onto the scheduler queue if the thread calls an async function.

§wrap: LuaFunction

Implementation of coroutine.wrap that handles async polling properly.

Defers onto the scheduler queue if the thread calls an async function.

§spawn: LuaFunction

Resumes a function / thread once instantly, and runs until first yield.

Spawns onto the scheduler queue if not completed.

§defer: LuaFunction

Defers a function / thread onto the scheduler queue.

Does not resume instantly, only adds to the queue.

§cancel: LuaFunction

Cancels a function / thread, removing it from the queue.

§exit: LuaFunction

Exits the scheduler, stopping all other threads and closing the scheduler.

Yields the calling thread to ensure that it does not continue.

Implementations§

Source§

impl Functions

Source

pub fn new(lua: Lua) -> LuaResult<Self>

Creates a new collection of Lua functions that may be called to interact with a [Scheduler].

§Errors

Errors when out of memory, or if default Lua globals are missing.

§Panics

Panics when the given Lua instance does not have an attached [Scheduler].

Source§

impl Functions

Source

pub fn inject_compat(&self, lua: &Lua) -> LuaResult<()>

Injects [Scheduler]-compatible functions into the given Lua instance.

This will overwrite the following functions:

  • coroutine.resume
  • coroutine.wrap
§Errors

Errors when out of memory, or if default Lua globals are missing.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> MaybeSend for T