pub struct DbOp<'c> { /* private fields */ }Expand description
Default return type of the derived EsRepo::begin_op().
Used as a wrapper of a sqlx::Transaction but can also cache the time at which the
transaction is taking place.
When --feature sim-time is active it will hold a time that will substitute NOW() in all
write operations.
Implementations§
Source§impl<'c> DbOp<'c>
impl<'c> DbOp<'c>
Sourcepub async fn init(pool: &PgPool) -> Result<DbOp<'static>, Error>
pub async fn init(pool: &PgPool) -> Result<DbOp<'static>, Error>
Initializes a transaction - defaults now() to None but will cache sim_time::now()
when --feature sim-time is active.
Sourcepub fn with_time(self, time: DateTime<Utc>) -> DbOpWithTime<'c>
pub fn with_time(self, time: DateTime<Utc>) -> DbOpWithTime<'c>
Transitions to a DbOpWithTime with the given time cached.
Sourcepub fn with_system_time(self) -> DbOpWithTime<'c>
pub fn with_system_time(self) -> DbOpWithTime<'c>
Transitions to a DbOpWithTime using chrono::Utc::now() to populate
(unless a time was already cached from sim-time).
Sourcepub async fn with_db_time(self) -> Result<DbOpWithTime<'c>, Error>
pub async fn with_db_time(self) -> Result<DbOpWithTime<'c>, Error>
Transitions to a DbOpWithTime using
SELECT NOW()from the database (unless a time was already cached from sim-time).
Sourcepub fn tx_mut(&mut self) -> &mut Transaction<'c, Postgres>
pub fn tx_mut(&mut self) -> &mut Transaction<'c, Postgres>
Gets a mutable handle to the inner transaction
Trait Implementations§
Source§impl<'o> AtomicOperation for DbOp<'o>
impl<'o> AtomicOperation for DbOp<'o>
Source§fn now(&self) -> Option<DateTime<Utc>>
fn now(&self) -> Option<DateTime<Utc>>
Function for querying when the operation is taking place - if it is cached.
Source§fn as_executor(&mut self) -> &mut PgConnection
fn as_executor(&mut self) -> &mut PgConnection
Returns the
sqlx::Executor implementation.
The desired way to represent this would actually be as a GAT: Read moreAuto Trait Implementations§
impl<'c> Freeze for DbOp<'c>
impl<'c> !RefUnwindSafe for DbOp<'c>
impl<'c> Send for DbOp<'c>
impl<'c> Sync for DbOp<'c>
impl<'c> Unpin for DbOp<'c>
impl<'c> !UnwindSafe for DbOp<'c>
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