Skip to main content

eventsourcing/eventstore/
mod.rs

1//! Event store trait and implementations
2#[cfg(feature = "eventstore")]
3use super::cloudevents::CloudEvent;
4use super::{Event, Result};
5
6#[cfg(feature = "eventstore")]
7pub use self::inmemory::MemoryEventStore;
8
9#[cfg(feature = "orgeventstore")]
10pub use self::orgeventstore::OrgEventStore;
11
12#[cfg(feature = "eventstore")]
13/// Trait required for event stores. For the moment, event stores are append-only
14pub trait EventStore {
15    fn append(&self, evt: impl Event, stream: &str) -> Result<CloudEvent>;
16}
17
18mod inmemory;
19#[cfg(feature = "orgeventstore")]
20mod orgeventstore;