pub struct PoolConnection<DB>where
DB: Database,{ /* private fields */ }
Expand description
A connection managed by a Pool
.
Will be returned to the pool on-drop.
Implementations§
source§impl<DB> PoolConnection<DB>where
DB: Database,
impl<DB> PoolConnection<DB>where
DB: Database,
sourcepub fn close_on_drop(&mut self)
pub fn close_on_drop(&mut self)
Close this connection on-drop, instead of returning it to the pool.
May be used in cases where waiting for the .close()
call
to complete is unacceptable, but you still want the connection to be closed gracefully
so that the server can clean up resources.
sourcepub fn detach(self) -> <DB as Database>::Connection
pub fn detach(self) -> <DB as Database>::Connection
Detach this connection from the pool, allowing it to open a replacement.
Note that if your application uses a single shared pool, this
effectively lets the application exceed the max_connections
setting.
If min_connections
is nonzero, a task will be spawned to replace this connection.
If you want the pool to treat this connection as permanently checked-out,
use .leak()
instead.
sourcepub fn leak(self) -> <DB as Database>::Connection
pub fn leak(self) -> <DB as Database>::Connection
Detach this connection from the pool, treating it as permanently checked-out.
This effectively will reduce the maximum capacity of the pool by 1 every time it is used.
If you don’t want to impact the pool’s capacity, use .detach()
instead.
Trait Implementations§
source§impl<'c, DB> Acquire<'c> for &'c mut PoolConnection<DB>where
DB: Database,
impl<'c, DB> Acquire<'c> for &'c mut PoolConnection<DB>where
DB: Database,
type Database = DB
type Connection = &'c mut <DB as Database>::Connection
fn acquire( self, ) -> Pin<Box<dyn Future<Output = Result<<&'c mut PoolConnection<DB> as Acquire<'c>>::Connection, Error>> + Send + 'c>>
fn begin( self, ) -> Pin<Box<dyn Future<Output = Result<Transaction<'c, DB>, Error>> + Send + 'c>>
source§impl<DB> AsMut<<DB as Database>::Connection> for PoolConnection<DB>where
DB: Database,
impl<DB> AsMut<<DB as Database>::Connection> for PoolConnection<DB>where
DB: Database,
source§fn as_mut(&mut self) -> &mut <DB as Database>::Connection
fn as_mut(&mut self) -> &mut <DB as Database>::Connection
source§impl<DB> AsRef<<DB as Database>::Connection> for PoolConnection<DB>where
DB: Database,
impl<DB> AsRef<<DB as Database>::Connection> for PoolConnection<DB>where
DB: Database,
source§fn as_ref(&self) -> &<DB as Database>::Connection
fn as_ref(&self) -> &<DB as Database>::Connection
source§impl<DB> Debug for PoolConnection<DB>where
DB: Database,
impl<DB> Debug for PoolConnection<DB>where
DB: Database,
source§impl<DB> Deref for PoolConnection<DB>where
DB: Database,
impl<DB> Deref for PoolConnection<DB>where
DB: Database,
source§impl<DB> DerefMut for PoolConnection<DB>where
DB: Database,
impl<DB> DerefMut for PoolConnection<DB>where
DB: Database,
source§impl<DB> Drop for PoolConnection<DB>where
DB: Database,
impl<DB> Drop for PoolConnection<DB>where
DB: Database,
Returns the connection to the Pool
it was checked-out from.
source§impl<'c, DB> From<PoolConnection<DB>> for MaybePoolConnection<'c, DB>where
DB: Database,
impl<'c, DB> From<PoolConnection<DB>> for MaybePoolConnection<'c, DB>where
DB: Database,
source§fn from(v: PoolConnection<DB>) -> MaybePoolConnection<'c, DB>
fn from(v: PoolConnection<DB>) -> MaybePoolConnection<'c, DB>
Auto Trait Implementations§
impl<DB> Freeze for PoolConnection<DB>
impl<DB> !RefUnwindSafe for PoolConnection<DB>
impl<DB> Send for PoolConnection<DB>
impl<DB> Sync for PoolConnection<DB>
impl<DB> Unpin for PoolConnection<DB>
impl<DB> !UnwindSafe for PoolConnection<DB>
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> 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 moresource§impl<T> ToHex for T
impl<T> ToHex for T
source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
self
into the result. Lower case
letters are used (e.g. f9b4ca
)source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
self
into the result. Upper case
letters are used (e.g. F9B4CA
)