disintegrate_postgres/
lib.rs1mod error;
3mod event_store;
4#[cfg(feature = "listener")]
5mod listener;
6mod snapshotter;
7
8pub use crate::event_store::PgEventStore;
9#[cfg(feature = "listener")]
10pub use crate::listener::{
11 id_indexer::{Error as PgIdIndexerError, PgIdIndexer},
12 PgEventListener, PgEventListenerConfig,
13};
14pub use crate::snapshotter::PgSnapshotter;
15use disintegrate::{DecisionMaker, Event, EventSourcedStateStore, SnapshotConfig, WithSnapshot};
16use disintegrate_serde::Serde;
17pub use error::Error;
18
19pub type PgEventId = i64;
20
21pub type PgDecisionMaker<E, S, SN> =
23 DecisionMaker<EventSourcedStateStore<PgEventId, E, PgEventStore<E, S>, SN>>;
24
25pub type WithPgSnapshot = WithSnapshot<PgEventId, PgSnapshotter>;
27
28pub fn decision_maker<
39 E: Event + Send + Sync + Clone,
40 S: Serde<E> + Clone + Sync + Send,
41 SN: SnapshotConfig + Clone,
42>(
43 event_store: PgEventStore<E, S>,
44 snapshot_config: SN,
45) -> PgDecisionMaker<E, S, SN> {
46 DecisionMaker::new(EventSourcedStateStore::new(event_store, snapshot_config))
47}