pub struct SqliteDatabase { /* private fields */ }Expand description
SQLite-backed database for collections and key-value storage. Uses a connection pool for concurrent reads and spawn_blocking to keep the async runtime responsive.
Implementations§
Source§impl SqliteDatabase
impl SqliteDatabase
Sourcepub fn open(path: impl AsRef<Path>) -> Result<Self>
pub fn open(path: impl AsRef<Path>) -> Result<Self>
Open or create a SQLite database at the given path. Creates a connection pool with WAL mode for concurrent reads.
Sourcepub fn in_memory() -> Result<Self>
pub fn in_memory() -> Result<Self>
Create an in-memory database (for testing). Uses pool_size=1 since in-memory DBs are per-connection.
Sourcepub fn import_json_collection(&self, name: &str, items: &[Value])
pub fn import_json_collection(&self, name: &str, items: &[Value])
Synchronous import of JSON items into a collection (for store.json migration). Only inserts if the collection table is currently empty.
Sourcepub async fn get_collection(&self, name: &str) -> Result<Vec<Value>>
pub async fn get_collection(&self, name: &str) -> Result<Vec<Value>>
Get all items from a collection
Sourcepub async fn query_collection(
&self,
name: &str,
query: &CollectionQuery,
) -> Result<Vec<Value>>
pub async fn query_collection( &self, name: &str, query: &CollectionQuery, ) -> Result<Vec<Value>>
Query a collection with sort, filter, search, limit, offset
Sourcepub async fn find_by(
&self,
collection: &str,
field: &str,
value: &Value,
) -> Result<Vec<Value>>
pub async fn find_by( &self, collection: &str, field: &str, value: &Value, ) -> Result<Vec<Value>>
Find items by a field value
Sourcepub async fn find_one_by(
&self,
collection: &str,
field: &str,
value: &Value,
) -> Result<Option<Value>>
pub async fn find_one_by( &self, collection: &str, field: &str, value: &Value, ) -> Result<Option<Value>>
Find a single item by field value
Sourcepub async fn create(&self, collection: &str, item: Value) -> Result<Value>
pub async fn create(&self, collection: &str, item: Value) -> Result<Value>
Create an item in a collection
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 by ID
Sourcepub async fn as_context(&self) -> Result<HashMap<String, Value>>
pub async fn as_context(&self) -> Result<HashMap<String, Value>>
Get all data as template context
Sourcepub async fn set_collection(&self, name: &str, items: Vec<Value>) -> Result<()>
pub async fn set_collection(&self, name: &str, items: Vec<Value>) -> Result<()>
Replace an entire collection
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 modify a key-value pair
Trait Implementations§
Source§impl Clone for SqliteDatabase
impl Clone for SqliteDatabase
Source§fn clone(&self) -> SqliteDatabase
fn clone(&self) -> SqliteDatabase
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 SqliteDatabase
impl !UnwindSafe for SqliteDatabase
impl Freeze for SqliteDatabase
impl Send for SqliteDatabase
impl Sync for SqliteDatabase
impl Unpin for SqliteDatabase
impl UnsafeUnpin for SqliteDatabase
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
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>
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