Struct fmodel_rust::aggregate::StateStoredAggregate
source · pub struct StateStoredAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: StateRepository<C, S, Version, Error>,
Decider: StateComputation<C, S, E>,{ /* private fields */ }Expand description
State Stored Aggregate.
It is using a Decider / StateComputation to compute new state based on the current state and the command.
It is using a StateRepository to fetch the current state and to save the new state.
Generic parameters:
C- CommandS- StateE- EventRepository- State repositoryDecider- State computationVersion- VersionError- Error
Implementations§
source§impl<C, S, E, Repository, Decider, Version, Error> StateStoredAggregate<C, S, E, Repository, Decider, Version, Error>where
Repository: StateRepository<C, S, Version, Error>,
Decider: StateComputation<C, S, E>,
impl<C, S, E, Repository, Decider, Version, Error> StateStoredAggregate<C, S, E, Repository, Decider, Version, Error>where Repository: StateRepository<C, S, Version, Error>, Decider: StateComputation<C, S, E>,
sourcepub fn new(repository: Repository, decider: Decider) -> Self
pub fn new(repository: Repository, decider: Decider) -> Self
Creates a new instance of StateStoredAggregate.
sourcepub async fn handle(&self, command: &C) -> Result<(S, Version), Error>
pub async fn handle(&self, command: &C) -> Result<(S, Version), Error>
Handles the command by fetching the state from the repository, computing new state based on the current state and the command, and saving the new state to the repository.
Auto Trait Implementations§
impl<C, S, E, Repository, Decider, Version, Error> RefUnwindSafe for StateStoredAggregate<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 StateStoredAggregate<C, S, E, Repository, Decider, Version, Error>where C: Send, Decider: Send, E: Send, Error: Send, Repository: Send, S: Send, Version: Send,
impl<C, S, E, Repository, Decider, Version, Error> Sync for StateStoredAggregate<C, S, E, Repository, Decider, Version, Error>where C: Sync, Decider: Sync, E: Sync, Error: Sync, Repository: Sync, S: Sync, Version: Sync,
impl<C, S, E, Repository, Decider, Version, Error> Unpin for StateStoredAggregate<C, S, E, Repository, Decider, Version, Error>where C: Unpin, Decider: Unpin, E: Unpin, Error: Unpin, Repository: Unpin, S: Unpin, Version: Unpin,
impl<C, S, E, Repository, Decider, Version, Error> UnwindSafe for StateStoredAggregate<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