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>
impl<'a> DBPool<'a>
pub fn new(db: &'a DB) -> Self
sourcepub fn query_interface(&self) -> &QueryInterface<'a>
pub fn query_interface(&self) -> &QueryInterface<'a>
Get a query interface from this DB pool for the current thread
Trait Implementations§
impl<'a> Send for DBPool<'a>
We carefully implement DBPool
so that it is Send
.
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> 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