pub struct LazyDb<CI> { /* private fields */ }Expand description
Lazily-loaded database with interruption support
In addition to the Self::interrupt method, LazyDb also calls [interrupt_support::register_interrupt] on any opened database. This means that if [interrupt_support::shutdown] is called it will interrupt this database if it’s open and in-use.
Implementations§
Source§impl<CI: ConnectionInitializer> LazyDb<CI>
impl<CI: ConnectionInitializer> LazyDb<CI>
Sourcepub fn new(
path: &Path,
open_flags: OpenFlags,
connection_initializer: CI,
) -> Self
pub fn new( path: &Path, open_flags: OpenFlags, connection_initializer: CI, ) -> Self
Create a new LazyDb
This does not open the connection and is non-blocking
Sourcepub fn lock(
&self,
) -> Result<(MappedMutexGuard<'_, Connection>, SqlInterruptScope), Error>
pub fn lock( &self, ) -> Result<(MappedMutexGuard<'_, Connection>, SqlInterruptScope), Error>
Lock the database mutex and get a connection and interrupt scope.
If the connection is closed, it will be opened.
Calling lock again, or calling close, from the same thread while the mutex guard is
still alive will cause a deadlock.
Auto Trait Implementations§
impl<CI> !Freeze for LazyDb<CI>
impl<CI> !RefUnwindSafe for LazyDb<CI>
impl<CI> Send for LazyDb<CI>where
CI: Send,
impl<CI> Sync for LazyDb<CI>where
CI: Sync,
impl<CI> Unpin for LazyDb<CI>where
CI: Unpin,
impl<CI> !UnwindSafe for LazyDb<CI>
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
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Consume a handle, getting back the initial
Arc<> Read more