Struct QueuedRuntime

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

A very small async runtime, with support for adding more tasks as it runs. This uses a VecDeque internally.

Implementations§

Source§

impl QueuedRuntime

Source

pub fn new() -> Self

Creates a new, empty QueuedRuntime. Awaiting this does nothing unless futures are pushed to it.

Examples found in repository?
examples/tcp.rs (line 14)
13fn main() {
14    let mut runtime = QueuedRuntime::new();
15    runtime.push(go(("0.0.0.0", 5000)));
16    sync(runtime);
17}
More examples
Hide additional examples
examples/recursion.rs (line 7)
6fn main() {
7    let mut runtime = QueuedRuntime::new();
8    runtime.push(print_something_after_ms(0));
9    sync(runtime);
10}
examples/runtime.rs (line 5)
4fn main() {
5    let mut runtime = QueuedRuntime::new();
6    for _ in 0..50 {
7        runtime.push(print_something_after_ms(2000));
8    }
9    sync(runtime);
10}
Source

pub fn new_with_boxed(future: BoxFuture<'static, ()>) -> Self

Creates a new QueuedRuntime. Unlike new(), this adds a single future immediately, so awaiting this will have an effect.

Source

pub fn new_with(future: impl Future<Output = ()> + 'static) -> Self

Creates a new QueuedRuntime. Unlike new(), this adds a single future immediately, so awaiting this will have an effect.

Trait Implementations§

Source§

impl Default for QueuedRuntime

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Future for QueuedRuntime

Source§

type Output = ()

The type of value produced on completion.
Source§

fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more
Source§

impl InternalRuntime for QueuedRuntime

Source§

fn push_boxed(&mut self, future: BoxFuture<'static, ()>) -> u64

Adds a new future to the queue to be completed.
Source§

fn contains(&mut self, id: u64) -> bool

Returns if a future by some ID is still running.
Source§

fn sleep<'b>(&self, duration: Duration) -> BoxFuture<'b, ()>

Asynchronously sleeps
Source§

fn stop(&mut self) -> Stop

Stops the runtime

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<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. Read more
Source§

impl<'a, T> Runtime<'a> for T
where T: InternalRuntime,

Source§

fn push_boxed(&mut self, future: Pin<Box<dyn Future<Output = ()>>>)

Adds a new future to the queue to be completed.
Source§

fn spawn_boxed( &'a mut self, future: Pin<Box<dyn Future<Output = ()>>>, ) -> SpawnedFuture<'a>

Adds a new future to the queue to be completed and returns a future waiting for the added future’s completion.
Source§

fn sleep<'b>( &'a self, duration: Duration, ) -> Pin<Box<dyn Future<Output = ()> + 'b>>

Asynchronously sleeps
Source§

fn stop(&mut self) -> Stop

Stops the runtime. This does not exit the process.
Source§

fn push(&mut self, future: impl Future<Output = ()> + 'static)

Adds a new future to the queue to be completed.
Source§

fn spawn( &'a mut self, future: impl Future<Output = ()> + 'static, ) -> SpawnedFuture<'a>

Adds a new future to the queue to be completed and returns a future waiting for the added future’s completion.
Source§

fn sleep_ms<'b>(&'a self, amount: u64) -> Pin<Box<dyn Future<Output = ()> + 'b>>

Asynchronously sleeps some amount of milliseconds
Source§

impl<'a, T> StartableRuntime<'a> for T
where T: InternalRuntime + 'a + Default,

Source§

fn construct() -> T

Internal function to make a new runtime. Only to be used by new() to create an OwnedRuntime. Automatically implemented for T where T: Default
Source§

fn new() -> OwnedRuntime<'a>

Constructs some new runtime
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.