Struct postgres_es::PostgresSnapshotStoreAggregateContext [−][src]
pub struct PostgresSnapshotStoreAggregateContext<A> where
A: Aggregate, {
pub aggregate_id: String,
pub current_sequence: usize,
// some fields omitted
}
Expand description
Holds context for a pure event store implementation for MemStore
Fields
aggregate_id: String
The aggregate ID of the aggregate instance that has been loaded.
current_sequence: usize
The last committed event sequence number for this aggregate instance.
Trait Implementations
impl<A: Aggregate> EventStore<A, PostgresSnapshotStoreAggregateContext<A>> for PostgresSnapshotStore<A>
impl<A: Aggregate> EventStore<A, PostgresSnapshotStoreAggregateContext<A>> for PostgresSnapshotStore<A>
Load all events for a particular aggregate_id
Load aggregate at current state
fn commit(
&self,
events: Vec<A::Event>,
context: PostgresSnapshotStoreAggregateContext<A>,
metadata: HashMap<String, String>
) -> Result<Vec<EventEnvelope<A>>, AggregateError>
fn commit(
&self,
events: Vec<A::Event>,
context: PostgresSnapshotStoreAggregateContext<A>,
metadata: HashMap<String, String>
) -> Result<Vec<EventEnvelope<A>>, AggregateError>
Commit new events
fn wrap_events(
&self,
aggregate_id: &str,
current_sequence: usize,
resultant_events: Vec<<A as Aggregate>::Event, Global>,
base_metadata: HashMap<String, String, RandomState>
) -> Vec<EventEnvelope<A>, Global>
fn wrap_events(
&self,
aggregate_id: &str,
current_sequence: usize,
resultant_events: Vec<<A as Aggregate>::Event, Global>,
base_metadata: HashMap<String, String, RandomState>
) -> Vec<EventEnvelope<A>, Global>
Method to wrap a set of events with the additional metadata needed for persistence and publishing