pub struct MysqlEventRepository { /* private fields */ }Expand description
An event repository relying on a MySql database for persistence.
Implementations§
Source§impl MysqlEventRepository
impl MysqlEventRepository
Sourcepub fn new(pool: Pool<MySql>) -> Self
pub fn new(pool: Pool<MySql>) -> Self
Creates a new MysqlEventRepository from the provided database connection
used for backing a MysqlSnapshotStore. This uses the default tables ‘events’
and ‘snapshots’.
use sqlx::{MySql, Pool};
use mysql_es::MysqlEventRepository;
fn configure_repo(pool: Pool<MySql>) -> MysqlEventRepository {
MysqlEventRepository::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 MysqlEventRepository to use a streaming queue of the provided size.
Example: configure the repository to stream with a 1000 event buffer.
use sqlx::{MySql, Pool};
use mysql_es::MysqlEventRepository;
fn configure_repo(pool: Pool<MySql>) -> MysqlEventRepository {
let store = MysqlEventRepository::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 MysqlEventRepository 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::{MySql, Pool};
use mysql_es::MysqlEventRepository;
fn configure_repo(pool: Pool<MySql>) -> MysqlEventRepository {
let store = MysqlEventRepository::new(pool);
store.with_tables("my_event_table", "my_snapshot_table")
}Trait Implementations§
Source§impl PersistedEventRepository for MysqlEventRepository
impl PersistedEventRepository for MysqlEventRepository
Source§async fn get_events<A: Aggregate>(
&self,
aggregate_id: &str,
) -> Result<Vec<SerializedEvent>, PersistenceError>
async fn get_events<A: Aggregate>( &self, aggregate_id: &str, ) -> Result<Vec<SerializedEvent>, PersistenceError>
Returns all events for a single aggregate instance.
Source§async fn get_last_events<A: Aggregate>(
&self,
aggregate_id: &str,
last_sequence: usize,
) -> Result<Vec<SerializedEvent>, PersistenceError>
async fn get_last_events<A: Aggregate>( &self, aggregate_id: &str, last_sequence: usize, ) -> Result<Vec<SerializedEvent>, PersistenceError>
Returns the last events for a single aggregate instance.
Source§async fn get_snapshot<A: Aggregate>(
&self,
aggregate_id: &str,
) -> Result<Option<SerializedSnapshot>, PersistenceError>
async fn get_snapshot<A: Aggregate>( &self, aggregate_id: &str, ) -> Result<Option<SerializedSnapshot>, PersistenceError>
Returns the current snapshot for an aggregate instance.
Source§async fn persist<A: Aggregate>(
&self,
events: &[SerializedEvent],
snapshot_update: Option<(String, Value, usize)>,
) -> Result<(), PersistenceError>
async fn persist<A: Aggregate>( &self, events: &[SerializedEvent], snapshot_update: Option<(String, Value, usize)>, ) -> Result<(), PersistenceError>
Commits the updated aggregate and accompanying events.
Source§async fn stream_events<A: Aggregate>(
&self,
aggregate_id: &str,
) -> Result<ReplayStream, PersistenceError>
async fn stream_events<A: Aggregate>( &self, aggregate_id: &str, ) -> Result<ReplayStream, PersistenceError>
Streams all events for an aggregate instance.
Source§async fn stream_all_events<A: Aggregate>(
&self,
) -> Result<ReplayStream, PersistenceError>
async fn stream_all_events<A: Aggregate>( &self, ) -> Result<ReplayStream, PersistenceError>
Streams all events for an aggregate type.
Auto Trait Implementations§
impl Freeze for MysqlEventRepository
impl !RefUnwindSafe for MysqlEventRepository
impl Send for MysqlEventRepository
impl Sync for MysqlEventRepository
impl Unpin for MysqlEventRepository
impl !UnwindSafe for MysqlEventRepository
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more