pub struct PgSnapshotter { /* private fields */ }
Expand description
PostgreSQL implementation for the Snapshotter
trait.
The PgSnapshotter
struct implements the Snapshotter
trait for PostgreSQL databases.
It allows for stroring and retrieving snapshots of StateQuery
from PostgreSQL database.
Implementations§
Source§impl PgSnapshotter
impl PgSnapshotter
Sourcepub async fn new(pool: PgPool, every: u64) -> Result<Self, Error>
pub async fn new(pool: PgPool, every: u64) -> Result<Self, Error>
Creates and initializes a new instance of PgSnapshotter
with the specified PostgreSQL connection pool and snapshot frequency.
§Arguments
pool
: A PostgreSQL connection pool (PgPool
) representing the database connection.every
: The frequency of snapshot creation, specified as the number of events between consecutive snapshots.
§Returns
A new PgSnapshotter
instance.
Sourcepub fn new_uninitialized(pool: PgPool, every: u64) -> Self
pub fn new_uninitialized(pool: PgPool, every: u64) -> Self
Creates a new instance of PgSnapshotter
with the specified PostgreSQL connection pool and snapshot frequency.
This constructor does not initialize the database. If you need to initialize the database,
use PgSnapshotter::new
instead.
If you use this constructor, ensure that the database is already initialized.
Refer to the SQL files in the snapshotter/sql
folder for the necessary schema.
§Arguments
pool
: A PostgreSQL connection pool (PgPool
) representing the database connection.every
: The frequency of snapshot creation, defined as the number of events between consecutive snapshots.
§Returns
A new PgSnapshotter
instance.
Trait Implementations§
Source§impl Clone for PgSnapshotter
impl Clone for PgSnapshotter
Source§fn clone(&self) -> PgSnapshotter
fn clone(&self) -> PgSnapshotter
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl StateSnapshotter<i64> for PgSnapshotter
impl StateSnapshotter<i64> for PgSnapshotter
Source§fn load_snapshot<'life0, 'async_trait, S>(
&'life0 self,
default: StatePart<PgEventId, S>,
) -> Pin<Box<dyn Future<Output = StatePart<PgEventId, S>> + Send + 'async_trait>>where
S: Send + Sync + DeserializeOwned + StateQuery + 'static + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
fn load_snapshot<'life0, 'async_trait, S>(
&'life0 self,
default: StatePart<PgEventId, S>,
) -> Pin<Box<dyn Future<Output = StatePart<PgEventId, S>> + Send + 'async_trait>>where
S: Send + Sync + DeserializeOwned + StateQuery + 'static + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
default
. Read moreSource§fn store_snapshot<'life0, 'life1, 'async_trait, S>(
&'life0 self,
state: &'life1 StatePart<PgEventId, S>,
) -> Pin<Box<dyn Future<Output = Result<(), BoxDynError>> + Send + 'async_trait>>where
S: Send + Sync + Serialize + StateQuery + 'static + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn store_snapshot<'life0, 'life1, 'async_trait, S>(
&'life0 self,
state: &'life1 StatePart<PgEventId, S>,
) -> Pin<Box<dyn Future<Output = Result<(), BoxDynError>> + Send + 'async_trait>>where
S: Send + Sync + Serialize + StateQuery + 'static + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl Freeze for PgSnapshotter
impl !RefUnwindSafe for PgSnapshotter
impl Send for PgSnapshotter
impl Sync for PgSnapshotter
impl Unpin for PgSnapshotter
impl !UnwindSafe for PgSnapshotter
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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