pub struct Manager<E> { /* private fields */ }
Expand description
A process is only permitted to have one open handle to each Rkv environment. This manager exists to enforce that constraint: don’t open environments directly.
By default, path canonicalization is enabled for identifying RKV instances. This
is true by default, because it helps enforce the constraints guaranteed by
this manager. However, path canonicalization might crash in some fringe
circumstances, so the no-canonicalize-path
feature offers the possibility of
disabling it. See: https://bugzilla.mozilla.org/show_bug.cgi?id=1531887
When path canonicalization is disabled, you must ensure an RKV environment is always created or retrieved with the same path.
Implementations§
source§impl<'e, E> Manager<E>where
E: BackendEnvironment<'e>,
impl<'e, E> Manager<E>where E: BackendEnvironment<'e>,
sourcepub fn get<'p, P>(
&self,
path: P
) -> Result<Option<Arc<RwLock<Rkv<E>>>>, StoreError>where
P: Into<&'p Path>,
pub fn get<'p, P>( &self, path: P ) -> Result<Option<Arc<RwLock<Rkv<E>>>>, StoreError>where P: Into<&'p Path>,
Return the open env at path
, returning None
if it has not already been opened.
sourcepub fn get_or_create<'p, F, P>(
&mut self,
path: P,
f: F
) -> Result<Arc<RwLock<Rkv<E>>>, StoreError>where
F: FnOnce(&Path) -> Result<Rkv<E>, StoreError>,
P: Into<&'p Path>,
pub fn get_or_create<'p, F, P>( &mut self, path: P, f: F ) -> Result<Arc<RwLock<Rkv<E>>>, StoreError>where F: FnOnce(&Path) -> Result<Rkv<E>, StoreError>, P: Into<&'p Path>,
Return the open env at path
, or create it by calling f
.
sourcepub fn get_or_create_with_capacity<'p, F, P>(
&mut self,
path: P,
capacity: c_uint,
f: F
) -> Result<Arc<RwLock<Rkv<E>>>, StoreError>where
F: FnOnce(&Path, c_uint) -> Result<Rkv<E>, StoreError>,
P: Into<&'p Path>,
pub fn get_or_create_with_capacity<'p, F, P>( &mut self, path: P, capacity: c_uint, f: F ) -> Result<Arc<RwLock<Rkv<E>>>, StoreError>where F: FnOnce(&Path, c_uint) -> Result<Rkv<E>, StoreError>, P: Into<&'p Path>,
Return the open env at path
with capacity
, or create it by calling f
.
sourcepub fn get_or_create_from_builder<'p, F, P, B>(
&mut self,
path: P,
builder: B,
f: F
) -> Result<Arc<RwLock<Rkv<E>>>, StoreError>where
F: FnOnce(&Path, B) -> Result<Rkv<E>, StoreError>,
P: Into<&'p Path>,
B: BackendEnvironmentBuilder<'e, Environment = E>,
pub fn get_or_create_from_builder<'p, F, P, B>( &mut self, path: P, builder: B, f: F ) -> Result<Arc<RwLock<Rkv<E>>>, StoreError>where F: FnOnce(&Path, B) -> Result<Rkv<E>, StoreError>, P: Into<&'p Path>, B: BackendEnvironmentBuilder<'e, Environment = E>,
Return a new Rkv environment from the builder, or create it by calling f
.