pub trait AsyncConnection: AsyncLowLevelConnection + Sized + Send + Sync {
    type Storage: AsyncStorageConnection<Database = Self>;

    // Required methods
    fn storage(&self) -> Self::Storage;
    fn list_executed_transactions<'life0, 'async_trait>(
        &'life0 self,
        starting_id: Option<u64>,
        result_limit: Option<u32>
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Executed>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn last_transaction_id<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Option<u64>, Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn compact<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
    fn compact_key_value_store<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;

    // Provided methods
    fn collection<C>(&self) -> AsyncCollection<'_, Self, C>
       where C: Collection { ... }
    fn view<V>(&self) -> AsyncView<'_, Self, V, <V as View>::Key>
       where V: SerializedView { ... }
    fn compact_collection<'life0, 'async_trait, C>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             C: 'async_trait + Collection,
             Self: 'async_trait { ... }
}
Expand description

A connection to a database’s Schema, giving access to Collections and Viewss. All functions on this trait are safe to use in an asynchronous context.

Required Associated Types§

source

type Storage: AsyncStorageConnection<Database = Self>

The AsyncStorageConnection type that is paired with this type.

Required Methods§

source

fn storage(&self) -> Self::Storage

Returns the StorageConnection implementor that this database belongs to.

source

fn list_executed_transactions<'life0, 'async_trait>( &'life0 self, starting_id: Option<u64>, result_limit: Option<u32> ) -> Pin<Box<dyn Future<Output = Result<Vec<Executed>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

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.

source

fn last_transaction_id<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<Option<u64>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

Fetches the last transaction id that has been committed, if any.

source

fn compact<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

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

fn compact_key_value_store<'life0, 'async_trait>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

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§

source

fn collection<C>(&self) -> AsyncCollection<'_, Self, C>
where C: Collection,

Accesses a collection for the connected Schema.

source

fn view<V>(&self) -> AsyncView<'_, Self, V, <V as View>::Key>
where V: SerializedView,

Accesses a schema::View from this connection.

source

fn compact_collection<'life0, 'async_trait, C>( &'life0 self ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, C: 'async_trait + Collection, Self: 'async_trait,

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

Object Safety§

This trait is not object safe.

Implementors§