Struct postgres_es::PostgresSnapshotStore [−][src]
pub struct PostgresSnapshotStore<A: Aggregate> { /* fields omitted */ }
Expand description
Storage engine using an Postgres backing and relying on a serialization of the aggregate rather than individual events. This is similar to the “snapshot strategy” seen in many CQRS frameworks.
Implementations
impl<A: Aggregate> PostgresSnapshotStore<A>
[src]
impl<A: Aggregate> PostgresSnapshotStore<A>
[src]pub fn new(conn: Connection) -> Self
[src]
pub fn new(conn: Connection) -> Self
[src]Creates a new PostgresSnapshotStore
from the provided database connection.
Trait Implementations
impl<A: Aggregate> EventStore<A, PostgresSnapshotStoreAggregateContext<A>> for PostgresSnapshotStore<A>
[src]
impl<A: Aggregate> EventStore<A, PostgresSnapshotStoreAggregateContext<A>> for PostgresSnapshotStore<A>
[src]fn load(&self, aggregate_id: &str) -> Vec<EventEnvelope<A>>
[src]
fn load(&self, aggregate_id: &str) -> Vec<EventEnvelope<A>>
[src]Load all events for a particular aggregate_id
fn load_aggregate(
&self,
aggregate_id: &str
) -> PostgresSnapshotStoreAggregateContext<A>
[src]
fn load_aggregate(
&self,
aggregate_id: &str
) -> PostgresSnapshotStoreAggregateContext<A>
[src]Load aggregate at current state
fn commit(
&self,
events: Vec<A::Event>,
context: PostgresSnapshotStoreAggregateContext<A>,
metadata: HashMap<String, String>
) -> Result<Vec<EventEnvelope<A>>, AggregateError>
[src]
fn commit(
&self,
events: Vec<A::Event>,
context: PostgresSnapshotStoreAggregateContext<A>,
metadata: HashMap<String, String>
) -> Result<Vec<EventEnvelope<A>>, AggregateError>
[src]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>
[src]
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>
[src]Method to wrap a set of events with the additional metadata needed for persistence and publishing
Auto Trait Implementations
impl<A> !RefUnwindSafe for PostgresSnapshotStore<A>
impl<A> Send for PostgresSnapshotStore<A>
impl<A> !Sync for PostgresSnapshotStore<A>
impl<A> Unpin for PostgresSnapshotStore<A> where
A: Unpin,
A: Unpin,
impl<A> !UnwindSafe for PostgresSnapshotStore<A>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self