Skip to main content

MemoryStateStoreProvider

Struct MemoryStateStoreProvider 

Source
pub struct MemoryStateStoreProvider { /* private fields */ }
Expand description

In-memory implementation of StateStoreProvider.

This is the default state store provider used when no external provider is configured. Data is stored in memory and does not persist across restarts.

§Thread Safety

This implementation is thread-safe and supports concurrent access from multiple plugins.

§Usage

use drasi_lib::MemoryStateStoreProvider;

let provider = MemoryStateStoreProvider::new();

// Store some data
provider.set("my-plugin", "key1", b"value1".to_vec()).await?;

// Retrieve data
if let Some(value) = provider.get("my-plugin", "key1").await? {
    println!("Value: {:?}", value);
}

Implementations§

Source§

impl MemoryStateStoreProvider

Source

pub fn new() -> Self

Create a new in-memory state store provider.

Trait Implementations§

Source§

impl Default for MemoryStateStoreProvider

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl StateStoreProvider for MemoryStateStoreProvider

Source§

fn get<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, store_id: &'life1 str, key: &'life2 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<Option<Vec<u8>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Get a single value by key from a store partition. Read more
Source§

fn set<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, store_id: &'life1 str, key: &'life2 str, value: Vec<u8>, ) -> Pin<Box<dyn Future<Output = StateStoreResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Set a single value by key in a store partition. Read more
Source§

fn delete<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, store_id: &'life1 str, key: &'life2 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Delete a single key from a store partition. Read more
Source§

fn contains_key<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, store_id: &'life1 str, key: &'life2 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Check if a key exists in a store partition without retrieving its value. Read more
Source§

fn get_many<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, store_id: &'life1 str, keys: &'life2 [&'life3 str], ) -> Pin<Box<dyn Future<Output = StateStoreResult<HashMap<String, Vec<u8>>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Get multiple values by keys from a store partition. Read more
Source§

fn set_many<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>( &'life0 self, store_id: &'life1 str, entries: &'life2 [(&'life3 str, &'life4 [u8])], ) -> Pin<Box<dyn Future<Output = StateStoreResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait, 'life4: 'async_trait,

Set multiple key-value pairs in a store partition. Read more
Source§

fn delete_many<'life0, 'life1, 'life2, 'life3, 'async_trait>( &'life0 self, store_id: &'life1 str, keys: &'life2 [&'life3 str], ) -> Pin<Box<dyn Future<Output = StateStoreResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait, 'life3: 'async_trait,

Delete multiple keys from a store partition. Read more
Source§

fn clear_store<'life0, 'life1, 'async_trait>( &'life0 self, store_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Delete all data for a store partition. Read more
Source§

fn list_keys<'life0, 'life1, 'async_trait>( &'life0 self, store_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<Vec<String>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

List all keys in a store partition. Read more
Source§

fn store_exists<'life0, 'life1, 'async_trait>( &'life0 self, store_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check if a store partition exists and has any data. Read more
Source§

fn key_count<'life0, 'life1, 'async_trait>( &'life0 self, store_id: &'life1 str, ) -> Pin<Box<dyn Future<Output = StateStoreResult<usize>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get the number of keys in a store partition. Read more
Source§

fn sync<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = StateStoreResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Force pending writes to persistent storage. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

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 T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more