Struct mmtkvdb::EnvRw

source ·
pub struct EnvRw { /* private fields */ }
Expand description

Read-write handle for accessing environment that stores key-value databases

An environment can be opened using EnvBuilder.

The methods for read-only access are accessible through the Env trait (which is implemented by EnvRo and EnvRw). Methods for write access, however, are available directly on the EnvRw struct.

Use Env::open_db or EnvRw::create_db to retrieve database handles and EnvRw::txn_rw to start a read-write transaction.

It’s also possible to create a read-only handle from a read-write handle by invoking Env::clone_ro.

Implementations§

source§

impl EnvRw

source

pub fn nestable_txns(&self) -> bool

Check if transactions are nestable

See TxnRw::nested.

source

pub unsafe fn create_db<K, V, C>( &mut self, options: &DbSpec<K, V, C> ) -> Result<Db<K, V, C>>where K: ?Sized + Storable, V: ?Sized + Storable, C: Constraint,

Open database in environment and create if non-existing

Safety
  • If a database exists already, it must have been created with compatible options.
  • Implementation of Storable for the used keys and values must behave the same as when the database was created.
source

pub fn drop_db<K, V, C>(&mut self, db: Db<K, V, C>) -> Result<()>where K: ?Sized + Storable, V: ?Sized + Storable, C: Constraint,

Delete database in environment

This method panics if there are clones of the Db handle. Use TxnRw::delete_all to only delete the contents of the database.

source

pub fn txn_rw(&mut self) -> Result<TxnRw<'_>>

Start read-write transaction

Trait Implementations§

source§

impl AsRef<EnvRo> for EnvRw

source§

fn as_ref(&self) -> &EnvRo

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Debug for EnvRw

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Env for EnvRw

source§

fn txn_ro(&self) -> Result<TxnRo<'_>>

Start read-only transaction
source§

fn max_keysize(&self) -> usize

Get maximum size of keys and duplicate data
source§

fn valid_keysize<'kr, K, KRef>(&self, key: KRef) -> boolwhere K: ?Sized + Storable + 'kr, KRef: StorableRef<'kr, K>,

Checks if key or duplicate data has valid size
source§

unsafe fn open_db<K, V, C>( &self, options: &DbSpec<K, V, C> ) -> Result<Db<K, V, C>>where K: ?Sized + Storable, V: ?Sized + Storable, C: Constraint,

Open database in environment Read more
source§

fn clear_stale_readers(&self) -> Result<usize>

Clear stale readers Read more
source§

fn as_env_ro(&self) -> &EnvRo

Reference conversion to EnvRo Read more
source§

fn clone_ro(&self) -> EnvRo

Clone as EnvRo
source§

impl EnvRef for &mut EnvRw

source§

unsafe fn open_or_create_db<K, V, C>( &mut self, options: &DbSpec<K, V, C> ) -> Result<Db<K, V, C>>where K: Storable + ?Sized, V: Storable + ?Sized, C: Constraint,

Open database in environment and, if possible, create if non-existing Read more
source§

impl Hash for EnvRw

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
source§

impl PartialEq<EnvRw> for EnvRw

source§

fn eq(&self, other: &EnvRw) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for EnvRw

source§

impl StructuralEq for EnvRw

source§

impl StructuralPartialEq for EnvRw

Auto Trait Implementations§

§

impl RefUnwindSafe for EnvRw

§

impl Send for EnvRw

§

impl Sync for EnvRw

§

impl Unpin for EnvRw

§

impl UnwindSafe for EnvRw

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.