Trait bee_runtime::worker::Worker[][src]

pub trait Worker<N: Node>: Any + Send + Sync + Sized {
    type Config;
    type Error: Error;
#[must_use]    fn start<'life0, 'async_trait>(
        node: &'life0 mut N,
        config: Self::Config
    ) -> Pin<Box<dyn Future<Output = Result<Self, Self::Error>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; fn dependencies() -> &'static [TypeId] { ... }
#[must_use] fn stop<'life0, 'async_trait>(
        self,
        _node: &'life0 mut N
    ) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
, { ... } }

A trait representing a node worker.

Node workers are conceptually similar to actors in the actor programming model, but differ slightly in a number of crucial ways.

  • Workers may register and access shared state, known as 'resources'.
  • Workers have a topological ordering that determine when they should be started and stopped.

Associated Types

type Config[src]

The configuration state required to start this worker.

type Error: Error[src]

An error that may be emitted during node startup and shutdown.

Loading content...

Required methods

#[must_use]fn start<'life0, 'async_trait>(
    node: &'life0 mut N,
    config: Self::Config
) -> Pin<Box<dyn Future<Output = Result<Self, Self::Error>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

Attempt to instantiate this worker with the given node and worker configuration.

Loading content...

Provided methods

fn dependencies() -> &'static [TypeId][src]

Generate a list of TypeIds representing the topological worker dependencies of this worker.

Workers listed will be started before this worker and shut down after this worker.

#[must_use]fn stop<'life0, 'async_trait>(
    self,
    _node: &'life0 mut N
) -> Pin<Box<dyn Future<Output = Result<(), Self::Error>> + Send + 'async_trait>> where
    'life0: 'async_trait,
    Self: 'async_trait, 
[src]

Attempt to stop an instance of this worker.

Loading content...

Implementors

Loading content...