pub struct ConnectionLease { /* private fields */ }Expand description
A leased connection with mode-aware lifecycle management
Implementations§
Source§impl ConnectionLease
impl ConnectionLease
Sourcepub fn new(
connection: PooledConnection,
mode: PoolingMode,
client_id: ClientId,
) -> Self
pub fn new( connection: PooledConnection, mode: PoolingMode, client_id: ClientId, ) -> Self
Create a new connection lease
Sourcepub fn connection(&self) -> &PooledConnection
pub fn connection(&self) -> &PooledConnection
Get the underlying connection (immutable)
Sourcepub fn connection_mut(&mut self) -> &mut PooledConnection
pub fn connection_mut(&mut self) -> &mut PooledConnection
Get the underlying connection (mutable)
Sourcepub fn into_connection(self) -> PooledConnection
pub fn into_connection(self) -> PooledConnection
Take ownership of the underlying connection
Sourcepub fn mode(&self) -> PoolingMode
pub fn mode(&self) -> PoolingMode
Get the pooling mode
Sourcepub fn in_transaction(&self) -> bool
pub fn in_transaction(&self) -> bool
Check if currently in a transaction
Sourcepub fn statements_executed(&self) -> u64
pub fn statements_executed(&self) -> u64
Get the number of statements executed
Sourcepub fn lease_duration(&self) -> Duration
pub fn lease_duration(&self) -> Duration
Get how long this lease has been held
Sourcepub fn on_statement_complete(&mut self, sql: &str) -> LeaseAction
pub fn on_statement_complete(&mut self, sql: &str) -> LeaseAction
Sourcepub fn on_transaction_end(&mut self) -> LeaseAction
pub fn on_transaction_end(&mut self) -> LeaseAction
Called when transaction ends (from backend ReadyForQuery status)
This is a more reliable way to detect transaction end than parsing SQL.
Sourcepub fn update_transaction_state(&mut self, in_transaction: bool)
pub fn update_transaction_state(&mut self, in_transaction: bool)
Update transaction state from backend ReadyForQuery status
§Arguments
in_transaction- Whether backend reports being in a transaction
Sourcepub fn should_release(&self) -> bool
pub fn should_release(&self) -> bool
Check if connection should be released based on current state
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for ConnectionLease
impl !RefUnwindSafe for ConnectionLease
impl Send for ConnectionLease
impl Sync for ConnectionLease
impl Unpin for ConnectionLease
impl UnsafeUnpin for ConnectionLease
impl !UnwindSafe for ConnectionLease
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