Trait Task

Source
pub trait Task<I, D>: Send + Sync {
    // Required methods
    fn id(&self) -> I;
    fn run(
        &self,
        inputs: HashMap<I, Input<'_, D>>,
    ) -> impl Future<Output = Option<D>> + Send + Sync;

    // Provided methods
    fn dependencies(&self) -> Vec<I> { ... }
    fn is_auto(&self) -> bool { ... }
}

Required Methods§

Source

fn id(&self) -> I

Source

fn run( &self, inputs: HashMap<I, Input<'_, D>>, ) -> impl Future<Output = Option<D>> + Send + Sync

Provided Methods§

Source

fn dependencies(&self) -> Vec<I>

Source

fn is_auto(&self) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<I, D, DYNOSAUR> Task<I, D> for &DYNOSAUR
where DYNOSAUR: ?Sized + Task<I, D>, Self: Send + Sync,

Source§

fn id(&self) -> I

Source§

fn dependencies(&self) -> Vec<I>

Source§

fn is_auto(&self) -> bool

Source§

fn run( &self, inputs: HashMap<I, Input<'_, D>>, ) -> impl Future<Output = Option<D>> + Send + Sync

Source§

impl<I, D, DYNOSAUR> Task<I, D> for &mut DYNOSAUR
where DYNOSAUR: ?Sized + Task<I, D>, Self: Send + Sync,

Source§

fn id(&self) -> I

Source§

fn dependencies(&self) -> Vec<I>

Source§

fn is_auto(&self) -> bool

Source§

fn run( &self, inputs: HashMap<I, Input<'_, D>>, ) -> impl Future<Output = Option<D>> + Send + Sync

Source§

impl<I, D, DYNOSAUR> Task<I, D> for Box<DYNOSAUR>
where DYNOSAUR: ?Sized + Task<I, D>, Self: Send + Sync,

Source§

fn id(&self) -> I

Source§

fn dependencies(&self) -> Vec<I>

Source§

fn is_auto(&self) -> bool

Source§

fn run( &self, inputs: HashMap<I, Input<'_, D>>, ) -> impl Future<Output = Option<D>> + Send + Sync

Implementors§