pub struct DataStore { /* private fields */ }Expand description
Central data store for the application
Implementations§
Source§impl DataStore
impl DataStore
Sourcepub fn with_persistence(path: impl Into<String>) -> Result<Self>
pub fn with_persistence(path: impl Into<String>) -> Result<Self>
Create a data store with persistence to a JSON file
Sourcepub async fn load_collection(
&self,
name: &str,
path: impl AsRef<Path>,
) -> Result<()>
pub async fn load_collection( &self, name: &str, path: impl AsRef<Path>, ) -> Result<()>
Load initial data from a JSON file into a collection
Sourcepub async fn get_collection(&self, name: &str) -> Option<Vec<Value>>
pub async fn get_collection(&self, name: &str) -> Option<Vec<Value>>
Get all items from a collection
Sourcepub async fn get_item(&self, collection: &str, index: usize) -> Option<Value>
pub async fn get_item(&self, collection: &str, index: usize) -> Option<Value>
Get a single item from a collection by index
Sourcepub async fn find_by(
&self,
collection: &str,
field: &str,
value: &Value,
) -> Vec<Value>
pub async fn find_by( &self, collection: &str, field: &str, value: &Value, ) -> Vec<Value>
Find items in a collection by a field value
Sourcepub async fn find_one_by(
&self,
collection: &str,
field: &str,
value: &Value,
) -> Option<Value>
pub async fn find_one_by( &self, collection: &str, field: &str, value: &Value, ) -> Option<Value>
Find a single item by a field value
Sourcepub async fn create(&self, collection: &str, item: Value) -> Result<Value>
pub async fn create(&self, collection: &str, item: Value) -> Result<Value>
Add an item to a collection (CREATE)
Sourcepub async fn update(
&self,
collection: &str,
id: &Value,
updates: Value,
) -> Result<Option<Value>>
pub async fn update( &self, collection: &str, id: &Value, updates: Value, ) -> Result<Option<Value>>
Update an item in a collection (UPDATE)
Sourcepub async fn delete(&self, collection: &str, id: &Value) -> Result<bool>
pub async fn delete(&self, collection: &str, id: &Value) -> Result<bool>
Delete an item from a collection (DELETE)
Sourcepub async fn atomic_modify<F>(&self, key: &str, f: F) -> Result<Value>
pub async fn atomic_modify<F>(&self, key: &str, f: F) -> Result<Value>
Atomically read-modify-write a value in the store. The closure receives the current value (or None) and returns the new value. The write lock is held for the entire operation, preventing race conditions.
Sourcepub async fn remove(&self, key: &str) -> Result<Option<Value>>
pub async fn remove(&self, key: &str) -> Result<Option<Value>>
Delete a single value from the store
Sourcepub async fn as_context(&self) -> HashMap<String, Value>
pub async fn as_context(&self) -> HashMap<String, Value>
Get all store data as a context for template rendering
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for DataStore
impl !UnwindSafe for DataStore
impl Freeze for DataStore
impl Send for DataStore
impl Sync for DataStore
impl Unpin for DataStore
impl UnsafeUnpin for DataStore
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§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§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more