Struct ScreepsRuntime

Source
pub struct ScreepsRuntime { /* private fields */ }
Expand description

A very basic futures executor based on a channel. When tasks are woken, they are scheduled by queuing them in the send half of the channel. The executor waits on the receive half and executes received tasks.

When a task is executed, the send half of the channel is passed along via the task’s Waker.

Implementations§

Source§

impl ScreepsRuntime

Source

pub fn spawn<F>(&self, future: F) -> JobHandle<F::Output>
where F: Future + 'static,

Spawn a new async task that will be polled next time the scheduler runs

Source

pub fn block_on<F>(&self, future: F) -> Result<F::Output, RuntimeError>
where F: Future + 'static,

The main entrypoint for the async runtime. Runs a future to completion.

Returns RuntimeError::DeadlockDetected if blocking Future doesn’t complete this tick

§Panics

Panics if another future is already being blocked on. You should .await the second future instead.

Source

pub fn run(&self) -> Result<(), RuntimeError>

Run the executor for one game tick

This should generally be the last thing you call in your loop as by default the runtime will keep polling for work until 90% of this tick’s CPU time has been exhausted. Thus, with enough scheduled work, this function will run for AT LEAST 90% of the tick time (90% + however long the last Future takes to poll)

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