Struct re_query::StorageEngine
source · pub struct StorageEngine {
store: ChunkStoreHandle,
cache: QueryCacheHandle,
}
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:
Fields§
§store: ChunkStoreHandle
§cache: QueryCacheHandle
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
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>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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