Trait bonsaidb::core::connection::Connection
source · pub trait Connection: LowLevelConnection + Sized + Send + Sync {
type Storage: StorageConnection<Database = Self>;
// Required methods
fn storage(&self) -> Self::Storage;
fn list_executed_transactions(
&self,
starting_id: Option<u64>,
result_limit: Option<u32>
) -> Result<Vec<Executed>, Error>;
fn last_transaction_id(&self) -> Result<Option<u64>, Error>;
fn compact(&self) -> Result<(), Error>;
fn compact_key_value_store(&self) -> Result<(), Error>;
// Provided methods
fn collection<C>(&self) -> Collection<'_, Self, C>
where C: Collection { ... }
fn view<V>(&self) -> View<'_, Self, V, <V as View>::Key>
where V: SerializedView { ... }
fn compact_collection<C>(&self) -> Result<(), Error>
where C: Collection { ... }
}Expand description
A connection to a database’s Schema, giving access to
Collections and
Viewss. This trait is not safe to use within async
contexts and will block the current thread. For async access, use
AsyncConnection.
Required Associated Types§
sourcetype Storage: StorageConnection<Database = Self>
type Storage: StorageConnection<Database = Self>
The StorageConnection type that is paired with this type.
Required Methods§
sourcefn storage(&self) -> Self::Storage
fn storage(&self) -> Self::Storage
Returns the StorageConnection implementor that this database belongs to.
sourcefn list_executed_transactions(
&self,
starting_id: Option<u64>,
result_limit: Option<u32>
) -> Result<Vec<Executed>, Error>
fn list_executed_transactions( &self, starting_id: Option<u64>, result_limit: Option<u32> ) -> Result<Vec<Executed>, Error>
Lists executed transactions from this
Schema. By default, a maximum of 1000 entries will
be returned, but that limit can be overridden by setting result_limit.
A hard limit of 100,000 results will be returned. To begin listing after
another known transaction_id, pass transaction_id + 1 into
starting_id.
sourcefn last_transaction_id(&self) -> Result<Option<u64>, Error>
fn last_transaction_id(&self) -> Result<Option<u64>, Error>
Fetches the last transaction id that has been committed, if any.
sourcefn compact(&self) -> Result<(), Error>
fn compact(&self) -> Result<(), Error>
Compacts the entire database to reclaim unused disk space.
This process is done by writing data to a new file and swapping the file once the process completes. This ensures that if a hardware failure, power outage, or crash occurs that the original collection data is left untouched.
Errors
Error::Other: an error occurred while compacting the database.
sourcefn compact_key_value_store(&self) -> Result<(), Error>
fn compact_key_value_store(&self) -> Result<(), Error>
Compacts the key value store to reclaim unused disk space.
This process is done by writing data to a new file and swapping the file once the process completes. This ensures that if a hardware failure, power outage, or crash occurs that the original collection data is left untouched.
Errors
Error::Other: an error occurred while compacting the database.
Provided Methods§
sourcefn collection<C>(&self) -> Collection<'_, Self, C>where
C: Collection,
fn collection<C>(&self) -> Collection<'_, Self, C>where
C: Collection,
Accesses a collection for the connected Schema.
sourcefn view<V>(&self) -> View<'_, Self, V, <V as View>::Key>where
V: SerializedView,
fn view<V>(&self) -> View<'_, Self, V, <V as View>::Key>where
V: SerializedView,
Accesses a schema::View from this connection.
sourcefn compact_collection<C>(&self) -> Result<(), Error>where
C: Collection,
fn compact_collection<C>(&self) -> Result<(), Error>where
C: Collection,
Compacts the collection to reclaim unused disk space.
This process is done by writing data to a new file and swapping the file once the process completes. This ensures that if a hardware failure, power outage, or crash occurs that the original collection data is left untouched.
Errors
Error::CollectionNotFound: databasenamedoes not exist.Error::Other: an error occurred while compacting the database.