Struct Pool

Source
pub struct Pool<M>{ /* private fields */ }
Expand description

A generic connection pool.

Implementations§

Source§

impl<M: ManageConnection> Pool<M>

Source

pub fn builder() -> Builder<M>

Returns a Builder instance to configure a new pool.

Source

pub async fn get(&self) -> Result<PooledConnection<'_, M>, RunError<M::Error>>

Retrieves a connection from the pool.

Source

pub async fn get_owned( &self, ) -> Result<PooledConnection<'static, M>, RunError<M::Error>>

Retrieves an owned connection from the pool

Using an owning PooledConnection makes it easier to leak the connection pool. Therefore, Pool::get (which stores a lifetime-bound reference to the pool) should be preferred whenever possible.

Source

pub async fn dedicated_connection(&self) -> Result<M::Connection, M::Error>

Get a new dedicated connection that will not be managed by the pool. An application may want a persistent connection (e.g. to do a postgres LISTEN) that will not be closed or repurposed by the pool.

This method allows reusing the manager’s configuration but otherwise bypassing the pool

Source

pub fn state(&self) -> State

Returns information about the current state of the pool.

Source

pub fn add(&self, conn: M::Connection) -> Result<(), AddError<M::Connection>>

Adds a connection to the pool.

If the connection is broken, or the pool is at capacity, the connection is not added and instead returned to the caller in Err.

Trait Implementations§

Source§

impl<M> Clone for Pool<M>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<M> Debug for Pool<M>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<M> Freeze for Pool<M>

§

impl<M> !RefUnwindSafe for Pool<M>

§

impl<M> Send for Pool<M>

§

impl<M> Sync for Pool<M>

§

impl<M> Unpin for Pool<M>

§

impl<M> !UnwindSafe for Pool<M>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.