Struct DBVersionedStateStore
pub struct DBVersionedStateStore<V: VersionIdentifier, T: KVStore>(pub RwLock<DBVersionedStateStoreInner<V, T>>);Expand description
RocksDB backed persistent VersionedStateStore.
Tuple Fields§
§0: RwLock<DBVersionedStateStoreInner<V, T>>Implementations§
§impl<V: VersionIdentifier, T: KVStore> DBVersionedStateStore<V, T>
impl<V: VersionIdentifier, T: KVStore> DBVersionedStateStore<V, T>
pub fn new( store: T, branch_factor: usize, ) -> Result<Self, VersionedStateStoreError>
pub fn calc_node_hash( current_node: &MerkleNode, inner: &DBVersionedStateStoreInner<V, T>, ) -> Result<Hash, VersionedStateStoreError>
pub fn merkle_hash( &self, version_id: &V, ) -> Result<Hash, VersionedStateStoreError>
pub fn is_empty_root( &self, version_id: &V, ) -> Result<bool, VersionedStateStoreError>
Trait Implementations§
§impl<V: VersionIdentifier, T: KVStore> VersionedStateStore<V> for DBVersionedStateStore<V, T>
impl<V: VersionIdentifier, T: KVStore> VersionedStateStore<V> for DBVersionedStateStore<V, T>
§fn atomic_write<'a>(
&'a self,
base: Option<&V>,
version_id: &V,
changes: Box<dyn Iterator<Item = (Key, Option<Value>)> + 'a>,
) -> Result<(), VersionedStateStoreError>
fn atomic_write<'a>( &'a self, base: Option<&V>, version_id: &V, changes: Box<dyn Iterator<Item = (Key, Option<Value>)> + 'a>, ) -> Result<(), VersionedStateStoreError>
Atomically apply a list of changes described by the iterator to the state of the
base
version, saved in the new version. Also set the latest version to version. For each
iterated item, a None value will remove the value if it exists.§impl<V: VersionIdentifier, T: KVStore> VersionedStateStoreR<V> for DBVersionedStateStore<V, T>
impl<V: VersionIdentifier, T: KVStore> VersionedStateStoreR<V> for DBVersionedStateStore<V, T>
fn debug_iter<'a>( &'a self, _: &V, ) -> Box<dyn Iterator<Item = (Key, Value)> + 'a>
§fn get(&self, version_id: &V, key: Key) -> Option<Value>
fn get(&self, version_id: &V, key: Key) -> Option<Value>
Retrieve the value for a particular version given a key. Returns
None if not exists.§fn get_all(&self, version_id: &V, key_prefix: Key) -> HashMap<Key, Value>
fn get_all(&self, version_id: &V, key_prefix: Key) -> HashMap<Key, Value>
Retrieve all the values for a given key prefix in a given version.
HashMap is empty if no such version or key prefix not exists.
§fn latest_version_id(&self) -> Option<V>
fn latest_version_id(&self) -> Option<V>
Obtain the latest version identifier that has been successfully written.
Auto Trait Implementations§
impl<V, T> !Freeze for DBVersionedStateStore<V, T>
impl<V, T> !RefUnwindSafe for DBVersionedStateStore<V, T>
impl<V, T> Send for DBVersionedStateStore<V, T>
impl<V, T> Sync for DBVersionedStateStore<V, T>
impl<V, T> Unpin for DBVersionedStateStore<V, T>
impl<V, T> UnwindSafe for DBVersionedStateStore<V, T>where
T: UnwindSafe,
V: UnwindSafe,
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<'de, F, T> Deserialize<'de, As<F>> for Twhere
F: BareFormula + ?Sized,
T: Deserialize<'de, F>,
impl<'de, F, T> Deserialize<'de, As<F>> for Twhere
F: BareFormula + ?Sized,
T: Deserialize<'de, F>,
§fn deserialize(deserializer: Deserializer<'de>) -> Result<T, DeserializeError>
fn deserialize(deserializer: Deserializer<'de>) -> Result<T, DeserializeError>
Deserializes value provided deserializer.
Returns deserialized value and the number of bytes consumed from
the and of input. Read more
§fn deserialize_in_place(
&mut self,
deserializer: Deserializer<'de>,
) -> Result<(), DeserializeError>
fn deserialize_in_place( &mut self, deserializer: Deserializer<'de>, ) -> Result<(), DeserializeError>
Deserializes value in-place provided deserializer.
Overwrites
self with data from the input. Read more§impl<'de, F, T> Deserialize<'de, Ref<F>> for T
impl<'de, F, T> Deserialize<'de, Ref<F>> for T
§fn deserialize(de: Deserializer<'de>) -> Result<T, DeserializeError>
fn deserialize(de: Deserializer<'de>) -> Result<T, DeserializeError>
Deserializes value provided deserializer.
Returns deserialized value and the number of bytes consumed from
the and of input. Read more
§fn deserialize_in_place(
&mut self,
de: Deserializer<'de>,
) -> Result<(), DeserializeError>
fn deserialize_in_place( &mut self, de: Deserializer<'de>, ) -> Result<(), DeserializeError>
Deserializes value in-place provided deserializer.
Overwrites
self with data from the input. Read more