Struct sqlite_es::SqliteEventRepository
source · pub struct SqliteEventRepository { /* private fields */ }Expand description
An event repository relying on a SQLite database for persistence.
Implementations
sourceimpl SqliteEventRepository
impl SqliteEventRepository
sourcepub fn new(pool: Pool<Sqlite>) -> Self
pub fn new(pool: Pool<Sqlite>) -> Self
Creates a new SqliteEventRepository from the provided database connection.
This uses the default tables ‘events’ and ‘snapshots’.
use sqlx::{Pool, Sqlite};
use sqlite_es::SqliteEventRepository;
fn configure_repo(pool: Pool<Sqlite>) -> SqliteEventRepository {
SqliteEventRepository::new(pool)
}sourcepub fn with_streaming_channel_size(self, stream_channel_size: usize) -> Self
pub fn with_streaming_channel_size(self, stream_channel_size: usize) -> Self
Configures a SqliteEventRepository to use a streaming queue of the provided size.
Example: configure the repository to stream with a 1000 event buffer.
use sqlx::{Pool, Sqlite};
use sqlite_es::SqliteEventRepository;
fn configure_repo(pool: Pool<Sqlite>) -> SqliteEventRepository {
let store = SqliteEventRepository::new(pool);
store.with_streaming_channel_size(1000)
}sourcepub fn with_tables(self, events_table: &str, snapshots_table: &str) -> Self
pub fn with_tables(self, events_table: &str, snapshots_table: &str) -> Self
Configures a SqliteEventRepository to use the provided table names.
Example: configure the repository to use “my_event_table” and “my_snapshot_table” for the event and snapshot table names.
use sqlx::{Pool, Sqlite};
use sqlite_es::SqliteEventRepository;
fn configure_repo(pool: Pool<Sqlite>) -> SqliteEventRepository {
let store = SqliteEventRepository::new(pool);
store.with_tables("my_event_table", "my_snapshot_table")
}Trait Implementations
sourceimpl PersistedEventRepository for SqliteEventRepository
impl PersistedEventRepository for SqliteEventRepository
sourcefn get_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Returns all events for a single aggregate instance.
sourcefn get_last_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str,
last_sequence: usize
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_last_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str,
last_sequence: usize
) -> Pin<Box<dyn Future<Output = Result<Vec<SerializedEvent>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Returns the last events for a single aggregate instance.
sourcefn get_snapshot<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Option<SerializedSnapshot>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_snapshot<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<Option<SerializedSnapshot>, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Returns the current snapshot for an aggregate instance.
sourcefn persist<'life0, 'life1, 'async_trait, A>(
&'life0 self,
events: &'life1 [SerializedEvent],
snapshot_update: Option<(String, Value, usize)>
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn persist<'life0, 'life1, 'async_trait, A>(
&'life0 self,
events: &'life1 [SerializedEvent],
snapshot_update: Option<(String, Value, usize)>
) -> Pin<Box<dyn Future<Output = Result<(), PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Commits the updated aggregate and accompanying events.
sourcefn stream_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn stream_events<'life0, 'life1, 'async_trait, A>(
&'life0 self,
aggregate_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Streams all events for an aggregate instance.
sourcefn stream_all_events<'life0, 'async_trait, A>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
Self: 'async_trait,
fn stream_all_events<'life0, 'async_trait, A>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<ReplayStream, PersistenceError>> + Send + 'async_trait>>where
A: 'async_trait + Aggregate,
'life0: 'async_trait,
Self: 'async_trait,
Streams all events for an aggregate type.
Auto Trait Implementations
impl !RefUnwindSafe for SqliteEventRepository
impl Send for SqliteEventRepository
impl Sync for SqliteEventRepository
impl Unpin for SqliteEventRepository
impl !UnwindSafe for SqliteEventRepository
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more