pub struct KvStoreHandle { /* private fields */ }Expand description
Handle for interacting with a replicated key-value store.
Provides async methods for putting, getting, and removing entries. Changes are automatically replicated to peers via gossip.
Implementations§
Source§impl KvStoreHandle
impl KvStoreHandle
Sourcepub async fn put(
&self,
key: String,
value: Vec<u8>,
content_type: String,
) -> Result<()>
pub async fn put( &self, key: String, value: Vec<u8>, content_type: String, ) -> Result<()>
Put a key-value pair into the store.
If the key already exists, the value is updated. Changes are automatically replicated to peers via gossip.
§Errors
Returns an error if the value exceeds the maximum inline size (64 KB).
Sourcepub async fn put_with_delta(
&self,
key: String,
value: Vec<u8>,
content_type: String,
) -> Result<KvStoreDelta>
pub async fn put_with_delta( &self, key: String, value: Vec<u8>, content_type: String, ) -> Result<KvStoreDelta>
Put a key-value pair and return the CRDT delta that was published.
This is used by API-layer delivery fallbacks that need to carry the exact same mutation over a side channel when pub/sub is congested.
§Errors
Returns an error if the value exceeds the maximum inline size (64 KB).
Sourcepub async fn get(&self, key: &str) -> Result<Option<KvEntrySnapshot>>
pub async fn get(&self, key: &str) -> Result<Option<KvEntrySnapshot>>
Get a value by key.
Returns None if the key does not exist or has been removed.
§Errors
Returns an error if the store cannot be read.
Sourcepub async fn remove_with_delta(&self, key: &str) -> Result<KvStoreDelta>
pub async fn remove_with_delta(&self, key: &str) -> Result<KvStoreDelta>
Remove a key and return the CRDT delta that was published.
§Errors
Returns an error if the key does not exist.
Sourcepub async fn apply_remote_delta(
&self,
peer_id: PeerId,
delta: &KvStoreDelta,
writer: Option<AgentId>,
) -> Result<()>
pub async fn apply_remote_delta( &self, peer_id: PeerId, delta: &KvStoreDelta, writer: Option<AgentId>, ) -> Result<()>
Apply a verified remote delta received through a non-pubsub channel.
§Errors
Returns an error if the delta fails to merge into the local store.
Sourcepub async fn keys(&self) -> Result<Vec<KvEntrySnapshot>>
pub async fn keys(&self) -> Result<Vec<KvEntrySnapshot>>
Trait Implementations§
Source§impl Clone for KvStoreHandle
impl Clone for KvStoreHandle
Source§fn clone(&self) -> KvStoreHandle
fn clone(&self) -> KvStoreHandle
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for KvStoreHandle
impl !UnwindSafe for KvStoreHandle
impl Freeze for KvStoreHandle
impl Send for KvStoreHandle
impl Sync for KvStoreHandle
impl Unpin for KvStoreHandle
impl UnsafeUnpin for KvStoreHandle
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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 more