pub struct JsonFileStore { /* private fields */ }Expand description
A file-backed store that persists state across restarts.
Uses atomic file rename to prevent corruption on crash: every write serialises
to a .tmp file first, then renames it over the target path.
Suitable for single-process bot operators. For multi-process or high-throughput
use cases, see RocksDbStore (v0.2).
§Example
use xenith_sync::JsonFileStore;
use xenith_core::StateStore;
let store = JsonFileStore::new("/tmp/xenith-state.json")?;Implementations§
Trait Implementations§
Source§impl StateStore for JsonFileStore
impl StateStore for JsonFileStore
Source§fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
) -> Pin<Box<dyn Future<Output = Result<Option<StateValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
) -> Pin<Box<dyn Future<Output = Result<Option<StateValue>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Retrieve the value for
key, or None if it has not been set.Source§fn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
value: StateValue,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
value: StateValue,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Insert or overwrite the value for
key.Source§fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Remove the value for
key. No-op if the key does not exist.Source§fn list_prefix<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<StateKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_prefix<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<StateKey>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Return all keys whose string representation starts with
prefix.Source§fn get_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
) -> Pin<Box<dyn Future<Output = Result<Option<KeyMetadata>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
) -> Pin<Box<dyn Future<Output = Result<Option<KeyMetadata>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn set_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
meta: KeyMetadata,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_metadata<'life0, 'life1, 'async_trait>(
&'life0 self,
key: &'life1 StateKey,
meta: KeyMetadata,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Store
KeyMetadata for key.Auto Trait Implementations§
impl Freeze for JsonFileStore
impl RefUnwindSafe for JsonFileStore
impl Send for JsonFileStore
impl Sync for JsonFileStore
impl Unpin for JsonFileStore
impl UnsafeUnpin for JsonFileStore
impl UnwindSafe for JsonFileStore
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