Struct fmodel_rust::aggregate::EventSourcedAggregate
source · pub struct EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error>,
Decider: EventComputation<C, S, E>,{ /* 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>,
Decider: EventComputation<C, S, E>,
impl<C, S, E, Repository, Decider, Version, Error> EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: EventRepository<C, E, Version, Error>,
Decider: EventComputation<C, S, E>,
sourcepub fn new(repository: Repository, decider: Decider) -> Self
pub fn new(repository: Repository, decider: Decider) -> Self
Creates a new instance of EventSourcedAggregate.
Auto Trait Implementations§
impl<C, S, E, Repository, Decider, Version, Error> RefUnwindSafe for EventSourcedAggregate<C, S, E, Repository, Decider, Version, Error>where
C: RefUnwindSafe,
Decider: RefUnwindSafe,
E: RefUnwindSafe,
Error: RefUnwindSafe,
Repository: RefUnwindSafe,
S: RefUnwindSafe,
Version: 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
C: UnwindSafe,
Decider: UnwindSafe,
E: UnwindSafe,
Error: UnwindSafe,
Repository: UnwindSafe,
S: UnwindSafe,
Version: 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