pub struct StorageEngine { /* private fields */ }
Expand description
Keeps track of handles towards a ChunkStore
and its QueryCache
.
A StorageEngine
doesn’t add any feature on top of what ChunkStoreHandle
and
QueryCacheHandle
already offer: the job of the StorageEngine
is to leverage the type
system in order to protect against deadlocks and race conditions at compile time.
The handles stored within will never be publicly accessible past construction.
The underlying ChunkStore
and QueryCache
can be accessed through one of the
following methods:
Implementations§
Source§impl StorageEngine
impl StorageEngine
Sourcepub unsafe fn new(store: ChunkStoreHandle, cache: QueryCacheHandle) -> Self
pub unsafe fn new(store: ChunkStoreHandle, cache: QueryCacheHandle) -> Self
Creates a new StorageEngine
with the specified ChunkStore
and QueryCache
handles.
§Safety
It is the responsibility of the caller to make sure that the given handles have not escaped
anywhere else before constructing this type, otherwise the StorageEngine
cannot make
any safety guarantees.
Source§impl StorageEngine
impl StorageEngine
pub fn read(&self) -> StorageEngineReadGuard<'_>
pub fn try_read(&self) -> Option<StorageEngineReadGuard<'_>>
pub fn try_read_arc(&self) -> Option<StorageEngineArcReadGuard>
pub fn write(&self) -> StorageEngineWriteGuard<'_>
pub fn try_write(&self) -> Option<StorageEngineWriteGuard<'_>>
pub fn read_arc(&self) -> StorageEngineArcReadGuard
pub fn write_arc(&self) -> StorageEngineArcWriteGuard
pub fn try_write_arc(&self) -> Option<StorageEngineArcWriteGuard>
Trait Implementations§
Source§impl Clone for StorageEngine
impl Clone for StorageEngine
Source§fn clone(&self) -> StorageEngine
fn clone(&self) -> StorageEngine
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl StorageEngineLike for StorageEngine
impl StorageEngineLike for StorageEngine
fn with<F: FnOnce(&ChunkStore, &QueryCache) -> R, R>(&self, f: F) -> R
fn try_with<F: FnOnce(&ChunkStore, &QueryCache) -> R, R>( &self, f: F, ) -> Option<R>
Auto Trait Implementations§
impl Freeze for StorageEngine
impl !RefUnwindSafe for StorageEngine
impl Send for StorageEngine
impl Sync for StorageEngine
impl Unpin for StorageEngine
impl !UnwindSafe for StorageEngine
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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more