Skip to main content

Task

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".

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§