pub struct EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error>,
Decider: EventComputation<C, S, E, Error>,{ /* private fields */ }
Expand description
Event Sourced Aggregate.
It is using a Decider
/ EventComputation to compute new events based on the current events and the command.
It is using a EventRepository to fetch the current events and to save the new events.
Generic parameters:
C
- CommandS
- StateE
- EventRepository
- Event repositoryDecider
- Event computationVersion
- Version/Offset/Sequence numberError
- Error
Implementations§
Source§impl<C, S, E, Repository, Decider, Version, Error> EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error> + Sync,
Decider: EventComputation<C, S, E, Error> + Sync,
C: Sync,
S: Sync,
E: Sync,
Version: Sync,
Error: Sync,
impl<C, S, E, Repository, Decider, Version, Error> EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error> + Sync,
Decider: EventComputation<C, S, E, Error> + Sync,
C: Sync,
S: Sync,
E: Sync,
Version: Sync,
Error: Sync,
Sourcepub fn new(repository: Repository, decider: Decider) -> Self
pub fn new(repository: Repository, decider: Decider) -> Self
Creates a new instance of EventSourcedAggregate.
Trait Implementations§
Source§impl<C, S, E, Repository, Decider, Version, Error> EventComputation<C, S, E, Error> for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error>,
Decider: EventComputation<C, S, E, Error>,
impl<C, S, E, Repository, Decider, Version, Error> EventComputation<C, S, E, Error> for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error>,
Decider: EventComputation<C, S, E, Error>,
Source§impl<C, S, E, Repository, Decider, Version, Error> EventRepository<C, E, Version, Error> for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error> + Sync,
Decider: EventComputation<C, S, E, Error> + Sync,
C: Sync,
S: Sync,
E: Sync,
Version: Sync,
Error: Sync,
impl<C, S, E, Repository, Decider, Version, Error> EventRepository<C, E, Version, Error> for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error> + Sync,
Decider: EventComputation<C, S, E, Error> + Sync,
C: Sync,
S: Sync,
E: Sync,
Version: Sync,
Error: Sync,
Source§async fn fetch_events(&self, command: &C) -> Result<Vec<(E, Version)>, Error>
async fn fetch_events(&self, command: &C) -> Result<Vec<(E, Version)>, Error>
Fetches current events, based on the command.
Auto Trait Implementations§
impl<C, S, E, Repository, Decider, Version, Error> Freeze for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>
impl<C, S, E, Repository, Decider, Version, Error> RefUnwindSafe for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: RefUnwindSafe,
Decider: RefUnwindSafe,
C: RefUnwindSafe,
S: RefUnwindSafe,
E: RefUnwindSafe,
Version: RefUnwindSafe,
Error: RefUnwindSafe,
impl<C, S, E, Repository, Decider, Version, Error> Send for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>
impl<C, S, E, Repository, Decider, Version, Error> Sync for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>
impl<C, S, E, Repository, Decider, Version, Error> Unpin for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>
impl<C, S, E, Repository, Decider, Version, Error> UnwindSafe for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: UnwindSafe,
Decider: UnwindSafe,
C: UnwindSafe,
S: UnwindSafe,
E: UnwindSafe,
Version: UnwindSafe,
Error: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more