causality

Trait Actor

Source
pub trait Actor<C: Cause, E: Effect, Err: Error> {
    type Id;
    type Version;

    // Required methods
    fn handle(&self, cause: C) -> Result<Vec<E>, Err>;
    fn apply(&mut self, effects: Vec<E>) -> Result<(), Err>;
}
Expand description

Entity that handles Causes producing one or more Effects upon success.

Implemented for Root Aggregates or Aggregates in Event Sourcing.

Required Associated Types§

Source

type Id

Unique Id for Actor.

Source

type Version

Version of Actor dependent on Effects applied.

Required Methods§

Source

fn handle(&self, cause: C) -> Result<Vec<E>, Err>

Handle Cause returning vector of Effects or error.

Source

fn apply(&mut self, effects: Vec<E>) -> Result<(), Err>

Apply Effects on Actor.

Implementors§