Struct microrm::DBPool

source ·
pub struct DBPool<'a> { /* private fields */ }
Expand description

Add support for multi-threading to a DB.

This is a thread-local cache that carefully maintains the property that no element of the cache will ever be accessed in any way from another thread. The only way to maintain this property is to leak all data, so this is best used in lightly-threaded programs (or at least a context where threads are long-lived). All cached values are assumed to use interior mutability where needed to maintain state.

This approach ensures that all items can live for the provided lifetime 'l.

Implementations§

source§

impl<'a> DBPool<'a>

source

pub fn new(db: &'a DB) -> Self

source

pub fn query_interface(&self) -> &QueryInterface<'a>

Get a query interface from this DB pool for the current thread

Trait Implementations§

source§

impl<'a> Send for DBPool<'a>

We carefully implement DBPool so that it is Send.

source§

impl<'a> Sync for DBPool<'a>

We carefully implement DBPool so that it is Sync.

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for DBPool<'a>

§

impl<'a> Unpin for DBPool<'a>

§

impl<'a> !UnwindSafe for DBPool<'a>

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

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.