Skip to main content

AnyTaskSpawner

Struct AnyTaskSpawner 

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

A bundle of type-erased TaskSpawners - one lane per declared task type - so the concrete ProcessContext / InitContext (whose signatures are fixed by the leaf trait and can’t name the plugin’s task types) can carry every lane and hand back the right typed spawner on demand via Self::downcast. Cheap to clone (one Arc).

Implementations§

Source§

impl AnyTaskSpawner

Source

pub fn new<T: Send + 'static>(spawner: &TaskSpawner<T>) -> Self

Erase a single typed spawner into a one-lane bundle.

Source

pub fn from_lanes(lanes: Vec<Arc<dyn Any + Send + Sync>>) -> Self

Bundle several already-erased lanes (one per task type). The plugin! macro builds the lanes with TaskSpawnerBundle.

Source

pub fn downcast<T: Send + 'static>(&self) -> Option<TaskSpawner<T>>

Recover the typed spawner for task type T, or None if no lane of that type was declared. Lanes have distinct types, so at most one matches.

Trait Implementations§

Source§

impl Clone for AnyTaskSpawner

Source§

fn clone(&self) -> AnyTaskSpawner

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.