Struct linera_views::backends::memory::MemoryStore
source · pub struct MemoryStore { /* private fields */ }
Expand description
A virtual DB client where data are persisted in memory.
Implementations§
source§impl MemoryStore
impl MemoryStore
sourcepub fn new(
max_stream_queries: usize,
namespace: &str,
root_key: &[u8],
) -> Result<Self, MemoryStoreError>
pub fn new( max_stream_queries: usize, namespace: &str, root_key: &[u8], ) -> Result<Self, MemoryStoreError>
Creates a MemoryStore
from a number of queries and a namespace.
sourcepub fn new_for_testing(
max_stream_queries: usize,
namespace: &str,
root_key: &[u8],
) -> Result<Self, MemoryStoreError>
pub fn new_for_testing( max_stream_queries: usize, namespace: &str, root_key: &[u8], ) -> Result<Self, MemoryStoreError>
Creates a MemoryStore
from a number of queries and a namespace for testing.
Trait Implementations§
source§impl AdminKeyValueStore for MemoryStore
impl AdminKeyValueStore for MemoryStore
§type Config = MemoryStoreConfig
type Config = MemoryStoreConfig
The configuration needed to interact with a new store.
source§async fn connect(
config: &Self::Config,
namespace: &str,
root_key: &[u8],
) -> Result<Self, MemoryStoreError>
async fn connect( config: &Self::Config, namespace: &str, root_key: &[u8], ) -> Result<Self, MemoryStoreError>
Connects to an existing namespace using the given configuration.
source§fn clone_with_root_key(&self, root_key: &[u8]) -> Result<Self, MemoryStoreError>
fn clone_with_root_key(&self, root_key: &[u8]) -> Result<Self, MemoryStoreError>
Takes a connection and creates a new one with a different
root_key
.source§async fn list_all(
_config: &Self::Config,
) -> Result<Vec<String>, MemoryStoreError>
async fn list_all( _config: &Self::Config, ) -> Result<Vec<String>, MemoryStoreError>
Obtains the list of existing namespaces.
source§async fn list_root_keys(
_config: &Self::Config,
namespace: &str,
) -> Result<Vec<Vec<u8>>, MemoryStoreError>
async fn list_root_keys( _config: &Self::Config, namespace: &str, ) -> Result<Vec<Vec<u8>>, MemoryStoreError>
Lists the root keys of the namespace.
It is possible that some root keys have no keys.
source§async fn exists(
_config: &Self::Config,
namespace: &str,
) -> Result<bool, MemoryStoreError>
async fn exists( _config: &Self::Config, namespace: &str, ) -> Result<bool, MemoryStoreError>
Tests if a given namespace exists.
source§async fn create(
_config: &Self::Config,
namespace: &str,
) -> Result<(), MemoryStoreError>
async fn create( _config: &Self::Config, namespace: &str, ) -> Result<(), MemoryStoreError>
Creates a namespace. Returns an error if the namespace exists.
source§async fn delete(
_config: &Self::Config,
namespace: &str,
) -> Result<(), MemoryStoreError>
async fn delete( _config: &Self::Config, namespace: &str, ) -> Result<(), MemoryStoreError>
Deletes the given namespace.
source§fn delete_all(
config: &Self::Config,
) -> impl Future<Output = Result<(), Self::Error>> + Send
fn delete_all( config: &Self::Config, ) -> impl Future<Output = Result<(), Self::Error>> + Send
Deletes all the existing namespaces.
source§impl Clone for MemoryStore
impl Clone for MemoryStore
source§fn clone(&self) -> MemoryStore
fn clone(&self) -> MemoryStore
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Drop for MemoryStore
impl Drop for MemoryStore
source§impl ReadableKeyValueStore for MemoryStore
impl ReadableKeyValueStore for MemoryStore
source§const MAX_KEY_SIZE: usize = 18_446_744_073_709_551_615usize
const MAX_KEY_SIZE: usize = 18_446_744_073_709_551_615usize
The maximal size of keys that can be stored.
source§fn max_stream_queries(&self) -> usize
fn max_stream_queries(&self) -> usize
Retrieve the number of stream queries.
source§async fn read_value_bytes(
&self,
key: &[u8],
) -> Result<Option<Vec<u8>>, MemoryStoreError>
async fn read_value_bytes( &self, key: &[u8], ) -> Result<Option<Vec<u8>>, MemoryStoreError>
Retrieves a
Vec<u8>
from the database using the provided key
.source§async fn contains_key(&self, key: &[u8]) -> Result<bool, MemoryStoreError>
async fn contains_key(&self, key: &[u8]) -> Result<bool, MemoryStoreError>
Tests whether a key exists in the database
source§async fn contains_keys(
&self,
keys: Vec<Vec<u8>>,
) -> Result<Vec<bool>, MemoryStoreError>
async fn contains_keys( &self, keys: Vec<Vec<u8>>, ) -> Result<Vec<bool>, MemoryStoreError>
Tests whether a list of keys exist in the database
source§async fn read_multi_values_bytes(
&self,
keys: Vec<Vec<u8>>,
) -> Result<Vec<Option<Vec<u8>>>, MemoryStoreError>
async fn read_multi_values_bytes( &self, keys: Vec<Vec<u8>>, ) -> Result<Vec<Option<Vec<u8>>>, MemoryStoreError>
Retrieves multiple
Vec<u8>
from the database using the provided keys
.source§async fn find_keys_by_prefix(
&self,
key_prefix: &[u8],
) -> Result<Vec<Vec<u8>>, MemoryStoreError>
async fn find_keys_by_prefix( &self, key_prefix: &[u8], ) -> Result<Vec<Vec<u8>>, MemoryStoreError>
Finds the
key
matching the prefix. The prefix is not included in the returned keys.source§async fn find_key_values_by_prefix(
&self,
key_prefix: &[u8],
) -> Result<Vec<(Vec<u8>, Vec<u8>)>, MemoryStoreError>
async fn find_key_values_by_prefix( &self, key_prefix: &[u8], ) -> Result<Vec<(Vec<u8>, Vec<u8>)>, MemoryStoreError>
Finds the
(key,value)
pairs matching the prefix. The prefix is not included in the returned keys.source§impl TestKeyValueStore for MemoryStore
impl TestKeyValueStore for MemoryStore
source§async fn new_test_config() -> Result<MemoryStoreConfig, MemoryStoreError>
async fn new_test_config() -> Result<MemoryStoreConfig, MemoryStoreError>
Obtains a test config
source§impl WithError for MemoryStore
impl WithError for MemoryStore
§type Error = MemoryStoreError
type Error = MemoryStoreError
The error type.
source§impl WritableKeyValueStore for MemoryStore
impl WritableKeyValueStore for MemoryStore
source§const MAX_VALUE_SIZE: usize = 18_446_744_073_709_551_615usize
const MAX_VALUE_SIZE: usize = 18_446_744_073_709_551_615usize
The maximal size of values that can be stored.
source§async fn write_batch(&self, batch: Batch) -> Result<(), MemoryStoreError>
async fn write_batch(&self, batch: Batch) -> Result<(), MemoryStoreError>
Writes the
batch
in the database.source§async fn clear_journal(&self) -> Result<(), MemoryStoreError>
async fn clear_journal(&self) -> Result<(), MemoryStoreError>
Clears any journal entry that may remain.
The journal is located at the
root_key
.Auto Trait Implementations§
impl Freeze for MemoryStore
impl RefUnwindSafe for MemoryStore
impl Send for MemoryStore
impl Sync for MemoryStore
impl Unpin for MemoryStore
impl UnwindSafe for MemoryStore
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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>
Converts
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>
Converts
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 moreCreates a shared type from an unshared type.
source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.
source§impl<TraitVariantBlanketType> LocalAdminKeyValueStore for TraitVariantBlanketTypewhere
TraitVariantBlanketType: AdminKeyValueStore,
impl<TraitVariantBlanketType> LocalAdminKeyValueStore for TraitVariantBlanketTypewhere
TraitVariantBlanketType: AdminKeyValueStore,
§type Config = <TraitVariantBlanketType as AdminKeyValueStore>::Config
type Config = <TraitVariantBlanketType as AdminKeyValueStore>::Config
The configuration needed to interact with a new store.
source§async fn connect(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
root_key: &[u8],
) -> Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>
async fn connect( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, root_key: &[u8], ) -> Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>
Connects to an existing namespace using the given configuration.
source§fn clone_with_root_key(
&self,
root_key: &[u8],
) -> Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>
fn clone_with_root_key( &self, root_key: &[u8], ) -> Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>
Takes a connection and creates a new one with a different
root_key
.source§async fn list_all(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
) -> Result<Vec<String>, <TraitVariantBlanketType as WithError>::Error>
async fn list_all( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, ) -> Result<Vec<String>, <TraitVariantBlanketType as WithError>::Error>
Obtains the list of existing namespaces.
source§async fn list_root_keys(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
) -> Result<Vec<Vec<u8>>, <TraitVariantBlanketType as WithError>::Error>
async fn list_root_keys( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, ) -> Result<Vec<Vec<u8>>, <TraitVariantBlanketType as WithError>::Error>
Lists the root keys of the namespace.
It is possible that some root keys have no keys.
source§fn delete_all(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
) -> impl Future<Output = Result<(), <TraitVariantBlanketType as WithError>::Error>>
fn delete_all( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, ) -> impl Future<Output = Result<(), <TraitVariantBlanketType as WithError>::Error>>
Deletes all the existing namespaces.
source§async fn exists(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
) -> Result<bool, <TraitVariantBlanketType as WithError>::Error>
async fn exists( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, ) -> Result<bool, <TraitVariantBlanketType as WithError>::Error>
Tests if a given namespace exists.
source§async fn create(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
) -> Result<(), <TraitVariantBlanketType as WithError>::Error>
async fn create( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, ) -> Result<(), <TraitVariantBlanketType as WithError>::Error>
Creates a namespace. Returns an error if the namespace exists.
source§async fn delete(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
) -> Result<(), <TraitVariantBlanketType as WithError>::Error>
async fn delete( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, ) -> Result<(), <TraitVariantBlanketType as WithError>::Error>
Deletes the given namespace.
source§fn maybe_create_and_connect(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
root_key: &[u8],
) -> impl Future<Output = Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>>
fn maybe_create_and_connect( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, root_key: &[u8], ) -> impl Future<Output = Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>>
Initializes a storage if missing and provides it.
source§fn recreate_and_connect(
config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config,
namespace: &str,
root_key: &[u8],
) -> impl Future<Output = Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>>
fn recreate_and_connect( config: &<TraitVariantBlanketType as LocalAdminKeyValueStore>::Config, namespace: &str, root_key: &[u8], ) -> impl Future<Output = Result<TraitVariantBlanketType, <TraitVariantBlanketType as WithError>::Error>>
Creates a new storage. Overwrites it if this namespace already exists.
source§impl<TraitVariantBlanketType> LocalReadableKeyValueStore for TraitVariantBlanketTypewhere
TraitVariantBlanketType: ReadableKeyValueStore,
impl<TraitVariantBlanketType> LocalReadableKeyValueStore for TraitVariantBlanketTypewhere
TraitVariantBlanketType: ReadableKeyValueStore,
source§const MAX_KEY_SIZE: usize = const MAX_KEY_SIZE: usize = <Self as ReadableKeyValueStore>::MAX_KEY_SIZE;
const MAX_KEY_SIZE: usize = const MAX_KEY_SIZE: usize = <Self as ReadableKeyValueStore>::MAX_KEY_SIZE;
The maximal size of keys that can be stored.
§type Keys = <TraitVariantBlanketType as ReadableKeyValueStore>::Keys
type Keys = <TraitVariantBlanketType as ReadableKeyValueStore>::Keys
Returns type for key search operations.
§type KeyValues = <TraitVariantBlanketType as ReadableKeyValueStore>::KeyValues
type KeyValues = <TraitVariantBlanketType as ReadableKeyValueStore>::KeyValues
Returns type for key-value search operations.
source§fn max_stream_queries(&self) -> usize
fn max_stream_queries(&self) -> usize
Retrieve the number of stream queries.
source§async fn read_value_bytes(
&self,
key: &[u8],
) -> Result<Option<Vec<u8>>, <TraitVariantBlanketType as WithError>::Error>
async fn read_value_bytes( &self, key: &[u8], ) -> Result<Option<Vec<u8>>, <TraitVariantBlanketType as WithError>::Error>
Retrieves a
Vec<u8>
from the database using the provided key
.source§async fn contains_key(
&self,
key: &[u8],
) -> Result<bool, <TraitVariantBlanketType as WithError>::Error>
async fn contains_key( &self, key: &[u8], ) -> Result<bool, <TraitVariantBlanketType as WithError>::Error>
Tests whether a key exists in the database
source§async fn contains_keys(
&self,
keys: Vec<Vec<u8>>,
) -> Result<Vec<bool>, <TraitVariantBlanketType as WithError>::Error>
async fn contains_keys( &self, keys: Vec<Vec<u8>>, ) -> Result<Vec<bool>, <TraitVariantBlanketType as WithError>::Error>
Tests whether a list of keys exist in the database
source§async fn read_multi_values_bytes(
&self,
keys: Vec<Vec<u8>>,
) -> Result<Vec<Option<Vec<u8>>>, <TraitVariantBlanketType as WithError>::Error>
async fn read_multi_values_bytes( &self, keys: Vec<Vec<u8>>, ) -> Result<Vec<Option<Vec<u8>>>, <TraitVariantBlanketType as WithError>::Error>
Retrieves multiple
Vec<u8>
from the database using the provided keys
.source§async fn find_keys_by_prefix(
&self,
key_prefix: &[u8],
) -> Result<<TraitVariantBlanketType as LocalReadableKeyValueStore>::Keys, <TraitVariantBlanketType as WithError>::Error>
async fn find_keys_by_prefix( &self, key_prefix: &[u8], ) -> Result<<TraitVariantBlanketType as LocalReadableKeyValueStore>::Keys, <TraitVariantBlanketType as WithError>::Error>
Finds the
key
matching the prefix. The prefix is not included in the returned keys.source§async fn find_key_values_by_prefix(
&self,
key_prefix: &[u8],
) -> Result<<TraitVariantBlanketType as LocalReadableKeyValueStore>::KeyValues, <TraitVariantBlanketType as WithError>::Error>
async fn find_key_values_by_prefix( &self, key_prefix: &[u8], ) -> Result<<TraitVariantBlanketType as LocalReadableKeyValueStore>::KeyValues, <TraitVariantBlanketType as WithError>::Error>
Finds the
(key,value)
pairs matching the prefix. The prefix is not included in the returned keys.source§impl<TraitVariantBlanketType> LocalWritableKeyValueStore for TraitVariantBlanketTypewhere
TraitVariantBlanketType: WritableKeyValueStore,
impl<TraitVariantBlanketType> LocalWritableKeyValueStore for TraitVariantBlanketTypewhere
TraitVariantBlanketType: WritableKeyValueStore,
source§const MAX_VALUE_SIZE: usize = const MAX_VALUE_SIZE: usize = <Self as WritableKeyValueStore>::MAX_VALUE_SIZE;
const MAX_VALUE_SIZE: usize = const MAX_VALUE_SIZE: usize = <Self as WritableKeyValueStore>::MAX_VALUE_SIZE;
The maximal size of values that can be stored.
source§impl<T> MockResults for T
impl<T> MockResults for T
§type Results = T
type Results = T
The mock native type of the results for the
MockInstance
.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length
bytes from memory from the provided location
.
source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes
to memory at the provided location
.
source§impl<T> Upcastable for T
impl<T> Upcastable for T
source§fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
source§fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref