Skip to main content

Database

Struct Database 

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

Abstraction for flora’s primary datastore (SQLite).

Implementations§

Source§

impl Database

Source

pub async fn optimize(&self) -> Result<(), DatabaseError>

Runs “PRAGMA optimize=0x10002”.

See https://sqlite.org/lang_analyze.html.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn new_with_records_table( path: impl AsRef<Path>, ) -> Result<Self, DatabaseError>

Initializes the database, activates WAL, creates a ‘records’ table, and creates indexes.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn count(&self) -> Result<i64, DatabaseError>

Queries the database to get a count of records it contains.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn insert(&self, record: DbRecord) -> Result<i64, DatabaseError>

Inserts the given record into the Database.

Returns the ID of the inserted row.

§Errors

Returns DatabaseError if the insert operation fails.

Source

pub async fn delete(&self, id: i64) -> Result<usize, DatabaseError>

Deletes the record corresponding to the given id.

Returns the number of documents affected (should be 1 if a document matching the id was deleted, and 0 if no matching document was found in the DB).

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn get_record(&self, id: i64) -> Result<DbRecord, DatabaseError>

Get a record from SQLite given an id.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn get_many_records( &self, ids: &[i64], ) -> Result<Vec<DbRecord>, DatabaseError>

Get multiple records from SQLite given their IDs.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn get_all_records( &self, start_row: Option<i64>, ) -> Result<Vec<DbRecord>, DatabaseError>

Selects all rows in the records table, without any pagination.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn get_all_meta( &self, start_row: Option<i64>, ) -> Result<Vec<DbRecordMeta>, DatabaseError>

Selects all rows in the records table, without any pagination, and returns their metadata (all fields except serialized data of the page content).

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn get_all_ids(&self) -> Result<Vec<i64>, DatabaseError>

Returns all record IDs in SQLite.

§Errors

Returns DatabaseError if the operation fails.

Source

pub async fn most_recent_meta( &self, start_idx: Option<usize>, ) -> Result<Vec<DbRecordMeta>, DatabaseError>

Similar to Database::get_all_meta, except orders records by descending order of timestamp_flora.

Returns an empty list if the given index is out of bounds.

Source

pub async fn update_record_data( &self, record: DbRecord, ) -> Result<i64, DatabaseError>

Updates the record by ID.

§Errors

Returns DatabaseError if the update operation fails.

Trait Implementations§

Source§

impl Clone for Database

Source§

fn clone(&self) -> Database

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Database

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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<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