Skip to main content

Runtime

Struct Runtime 

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

The async runtime that drives futures to completion.

The runtime provides:

  • Task spawning via spawn() and block_on().
  • Blocking task support via spawn_blocking().
  • Timer support (when the time feature is enabled).
  • File I/O offloading (when the fs feature is enabled).

§Examples

let runtime = RuntimeBuilder::new().build().unwrap();
let value = runtime.block_on(async { 42 });
assert_eq!(value, 42);

Implementations§

Source§

impl Runtime

Source

pub fn spawn<T>( &self, future: impl Future<Output = T> + 'static, ) -> JoinHandle<T>
where T: 'static,

Spawn a task on this runtime.

Returns a JoinHandle that can be awaited to get the task’s output.

Source

pub async fn spawn_blocking<T, F>(&self, f: F) -> Result<T, SpawnBlockingError>
where T: Send + 'static, F: FnOnce() -> T + Send + 'static,

Spawn a blocking task on this runtime’s thread pool.

Source

pub fn block_on<T>(&self, future: impl Future<Output = T> + 'static) -> T
where T: 'static,

Run the runtime and execute the given future to completion.

This method blocks the current thread and drives the runtime until the provided future completes.

Trait Implementations§

Source§

impl Drop for Runtime

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

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.