AnyExecutor

Struct AnyExecutor 

Source
pub struct AnyExecutor(/* private fields */);
Expand description

A type-erased Executor that can hold any executor implementation.

This allows for runtime selection of executors and storing different executor types in the same collection.

Implementations§

Source§

impl AnyExecutor

Source

pub fn new(executor: impl Executor + 'static) -> Self

Create a new AnyExecutor wrapping the given executor.

Source

pub fn downcast_ref<E: Executor + 'static>(&self) -> Option<&E>

Attempt to downcast to a concrete executor type by reference.

Returns Some(&E) if the underlying executor is of type E, None otherwise.

Source

pub fn downcast<E: Executor + 'static>(self) -> Result<Box<E>, Self>

Attempt to downcast to a concrete executor type by value.

Returns Ok(Box<E>) if the underlying executor is of type E, Err(Self) otherwise (returning the original AnyExecutor).

Trait Implementations§

Source§

impl Debug for AnyExecutor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Executor for AnyExecutor

Source§

type Task<T: Send + 'static> = AnyExecutorTask<T>

The task type returned by spawn. Read more
Source§

fn spawn<Fut>(&self, fut: Fut) -> Self::Task<Fut::Output>
where Fut: Future<Output: Send> + Send + 'static,

Spawn a future that will run to completion. 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.