TxOutcome

Struct TxOutcome 

Source
pub struct TxOutcome { /* private fields */ }
Expand description

Outcome returned by committing or rolling back a backend transaction.

Most backends do not need to surface anything after commit/rollback, but SQLite consumes the pooled connection for the transaction and needs to hand it back (with its translation flag) so callers can keep using the pooled wrapper.

If you started a raw SQLite transaction, continue using the connection from the returned outcome instead of the pre-transaction wrapper to preserve the translation flag and pool state.

Implementations§

Source§

impl TxOutcome

Source

pub fn without_restored_connection() -> Self

Outcome with no connection to restore (common for Postgres, Turso, MSSQL).

Source

pub fn with_restored_connection(conn: MiddlewarePoolConnection) -> Self

Outcome that includes a connection restored to its pooled wrapper.

Source

pub fn restored_connection(&self) -> Option<&MiddlewarePoolConnection>

Borrow the restored connection, if present.

Source

pub fn into_restored_connection(self) -> Option<MiddlewarePoolConnection>

Consume the outcome and take ownership of the restored connection, if present.

Source

pub fn restore_into(self, conn_slot: &mut MiddlewarePoolConnection)

Restore any pooled connection contained in this outcome back into the caller’s slot.

This is primarily useful for SQLite, where the transaction API consumes the pooled wrapper and returns it on commit/rollback. Other backends return an empty outcome, making this a no-op.

Source

pub fn into_sqlite_parts(self) -> Option<(SqliteConnection, bool)>

Consume the outcome and unwrap the SQLite connection + translation flag.

Trait Implementations§

Source§

impl Debug for TxOutcome

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TxOutcome

Source§

fn default() -> TxOutcome

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V