Struct Pool

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

Asynchronous pool of MySql connections.

Actually Pool is a shared reference, i.e. every clone will lead to the same instance created with Pool::new. Also Pool satisfies Send and Sync, so you don’t have to wrap it into an Arc or Mutex.

Note that you will probably want to await Pool::disconnect before dropping the runtime, as otherwise you may end up with a number of connections that are not cleanly terminated.

Implementations§

Source§

impl Pool

Source

pub fn new<O>(opts: O) -> Pool
where Opts: TryFrom<O>, <Opts as TryFrom<O>>::Error: Error,

Creates a new pool of connections.

§Panic

It’ll panic if Opts::try_from(opts) returns error.

Source

pub fn metrics(&self) -> Arc<Metrics>

Returns metrics for the connection pool.

Source

pub fn from_url<T: AsRef<str>>(url: T) -> Result<Pool>

Creates a new pool of connections.

Source

pub fn get_conn(&self) -> GetConn

Async function that resolves to Conn.

Source

pub async fn start_transaction( &self, options: TxOpts, ) -> Result<Transaction<'static>>

Starts a new transaction.

Source

pub fn disconnect(self) -> DisconnectPool

Async function that disconnects this pool from the server and resolves to ().

Note: This Future won’t resolve until all active connections, taken from it, are dropped or disonnected. Also all pending and new GetConn’s will resolve to error.

Trait Implementations§

Source§

impl Clone for Pool

Source§

fn clone(&self) -> Pool

Returns a copy 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 Debug for Pool

Source§

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

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

impl<'a> ToConnection<'a, 'static> for &'a Pool

Source§

fn to_connection(self) -> ToConnectionResult<'a, 'static>

Converts self to a connection.
Source§

impl ToConnection<'static, 'static> for Pool

Source§

fn to_connection(self) -> ToConnectionResult<'static, 'static>

Converts self to a connection.

Auto Trait Implementations§

§

impl Freeze for Pool

§

impl !RefUnwindSafe for Pool

§

impl Send for Pool

§

impl Sync for Pool

§

impl Unpin for Pool

§

impl !UnwindSafe for Pool

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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T