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: Collection>(&self) -> Collection<'_, Self, C> { ... }
fn view<V: SerializedView>(&self) -> View<'_, Self, V, V::Key> { ... }
fn compact_collection<C: Collection>(&self) -> Result<(), Error> { ... }
}
Expand description
A connection to a database’s Schema
, giving access to
Collection
s and
Views
s. 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: Collection>(&self) -> Collection<'_, Self, C>
fn collection<C: Collection>(&self) -> Collection<'_, Self, C>
Accesses a collection for the connected Schema
.
sourcefn view<V: SerializedView>(&self) -> View<'_, Self, V, V::Key>
fn view<V: SerializedView>(&self) -> View<'_, Self, V, V::Key>
Accesses a schema::View
from this connection.
sourcefn compact_collection<C: Collection>(&self) -> Result<(), Error>
fn compact_collection<C: Collection>(&self) -> Result<(), Error>
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
: databasename
does not exist.Error::Other
: an error occurred while compacting the database.