pub struct AsyncDatabase { /* private fields */ }Expand description
A database stored in BonsaiDb. This type is designed for use with
Tokio. For blocking (non-asynchronous) code, see the
Database type instead.
§Converting between Async and Blocking Types
AsyncDatabase and Database can be converted to and from each other
using:
AsyncDatabase::into_blocking()AsyncDatabase::to_blocking()AsyncDatabase::as_blocking()Database::into_async()Database::to_async()Database::into_async_with_runtime()Database::to_async_with_runtime()
§Using Database to create a single database
Databaseprovides an easy mechanism to open and access a single database:
// `bonsaidb_core` is re-exported to `bonsaidb::core` or `bonsaidb_local::core`.
use bonsaidb_core::schema::Collection;
// `bonsaidb_local` is re-exported to `bonsaidb::local` if using the omnibus crate.
use bonsaidb_local::{
config::{Builder, StorageConfiguration},
AsyncDatabase,
};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Collection)]
#[collection(name = "blog-posts")]
struct BlogPost {
pub title: String,
pub contents: String,
}
let db = AsyncDatabase::open::<BlogPost>(StorageConfiguration::new("my-db.bonsaidb")).await?;Under the hood, this initializes a AsyncStorage instance pointing at
“./my-db.bonsaidb”. It then returns (or creates) a database named “default”
with the schema BlogPost.
In this example, BlogPost implements the
Collection trait, and all collections can be used as
a Schema.
Implementations§
Source§impl AsyncDatabase
impl AsyncDatabase
Sourcepub async fn open<DB: Schema>(
configuration: StorageConfiguration,
) -> Result<Self, Error>
pub async fn open<DB: Schema>( configuration: StorageConfiguration, ) -> Result<Self, Error>
Creates a Storage with a single-database named “default” with its data stored at path.
Sourcepub fn with_effective_permissions(
&self,
effective_permissions: Permissions,
) -> Option<Self>
pub fn with_effective_permissions( &self, effective_permissions: Permissions, ) -> Option<Self>
Restricts an unauthenticated instance to having effective_permissions.
Returns None if a session has already been established.
Sourcepub fn into_blocking(self) -> Database
pub fn into_blocking(self) -> Database
Converts this instance into its blocking version, which is able to be used without async.
Sourcepub fn to_blocking(&self) -> Database
pub fn to_blocking(&self) -> Database
Converts this instance into its blocking version, which is able to be used without async.
Sourcepub fn as_blocking(&self) -> &Database
pub fn as_blocking(&self) -> &Database
Returns a reference to this instance’s blocking version, which is able to be used without async.
Trait Implementations§
Source§impl AsyncConnection for AsyncDatabase
impl AsyncConnection for AsyncDatabase
Source§type Storage = AsyncStorage
type Storage = AsyncStorage
AsyncStorageConnection type that is paired with this type.Source§fn storage(&self) -> Self::Storage
fn storage(&self) -> Self::Storage
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
Self: 'async_trait,
'life0: 'async_trait,
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
Self: 'async_trait,
'life0: 'async_trait,
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
Self: 'async_trait,
'life0: 'async_trait,
fn last_transaction_id<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<u64>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn compact<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn compact<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn compact_collection<'life0, 'async_trait, C>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
C: 'async_trait + Collection,
Self: 'async_trait,
'life0: 'async_trait,
fn compact_collection<'life0, 'async_trait, C>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
C: 'async_trait + Collection,
Self: 'async_trait,
'life0: 'async_trait,
Source§fn compact_key_value_store<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn compact_key_value_store<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn collection<C>(&self) -> AsyncCollection<'_, Self, C>where
C: Collection,
fn collection<C>(&self) -> AsyncCollection<'_, Self, C>where
C: Collection,
Schema.Source§fn view<V>(&self) -> AsyncView<'_, Self, V, <V as View>::Key>where
V: SerializedView,
fn view<V>(&self) -> AsyncView<'_, Self, V, <V as View>::Key>where
V: SerializedView,
schema::View from this connection.Source§impl AsyncKeyValue for AsyncDatabase
impl AsyncKeyValue for AsyncDatabase
Source§fn execute_key_operation<'life0, 'async_trait>(
&'life0 self,
op: KeyOperation,
) -> Pin<Box<dyn Future<Output = Result<Output, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute_key_operation<'life0, 'async_trait>(
&'life0 self,
op: KeyOperation,
) -> Pin<Box<dyn Future<Output = Result<Output, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
KeyOperation.Source§fn set_key<'a, S, V>(
&'a self,
key: S,
value: &'a V,
) -> AsyncBuilder<'a, Self, V>
fn set_key<'a, S, V>( &'a self, key: S, value: &'a V, ) -> AsyncBuilder<'a, Self, V>
key to value. This function returns a builder that is also a
Future. Awaiting the builder will execute Command::Set with the options
given.Source§fn set_binary_key<'a, S>(
&'a self,
key: S,
bytes: &'a [u8],
) -> AsyncBuilder<'a, Self, ()>
fn set_binary_key<'a, S>( &'a self, key: S, bytes: &'a [u8], ) -> AsyncBuilder<'a, Self, ()>
key to bytes. This function returns a builder that is also
a Future. Awaiting the builder will execute Command::Set with
the options given.Source§fn set_numeric_key<S, V>(&self, key: S, value: V) -> AsyncBuilder<'_, Self, ()>
fn set_numeric_key<S, V>(&self, key: S, value: V) -> AsyncBuilder<'_, Self, ()>
key to value. This stores the value as a Numeric,
enabling atomic math operations to be performed on this key. This
function returns a builder that is also a Future. Awaiting the
builder will execute Command::Set with the options given.Source§fn increment_key_by<S, V>(&self, key: S, value: V) -> AsyncBuilder<'_, Self, V>
fn increment_key_by<S, V>(&self, key: S, value: V) -> AsyncBuilder<'_, Self, V>
key by value. The value stored must be a Numeric,
otherwise an error will be returned. The result of the increment
will be the value’s type. For example, if the stored value is
currently a u64, but value is a f64, the current value will be
converted to an f64, and the stored value will be an f64.Source§fn decrement_key_by<S, V>(&self, key: S, value: V) -> AsyncBuilder<'_, Self, V>
fn decrement_key_by<S, V>(&self, key: S, value: V) -> AsyncBuilder<'_, Self, V>
key by value. The value stored must be a Numeric,
otherwise an error will be returned. The result of the decrement
will be the value’s type. For example, if the stored value is
currently a u64, but value is a f64, the current value will be
converted to an f64, and the stored value will be an f64.Source§fn get_key<S>(&self, key: S) -> AsyncBuilder<'_, Self>
fn get_key<S>(&self, key: S) -> AsyncBuilder<'_, Self>
key. This function returns a builder that is also a
Future. Awaiting the builder will execute Command::Get with the options
given.Source§fn delete_key<'life0, 'async_trait, S>(
&'life0 self,
key: S,
) -> Pin<Box<dyn Future<Output = Result<KeyStatus, Error>> + Send + 'async_trait>>
fn delete_key<'life0, 'async_trait, S>( &'life0 self, key: S, ) -> Pin<Box<dyn Future<Output = Result<KeyStatus, Error>> + Send + 'async_trait>>
key.Source§fn key_namespace(&self) -> Option<&str>
fn key_namespace(&self) -> Option<&str>
Source§fn with_key_namespace(&self, namespace: &str) -> Namespaced<'_, Self>
fn with_key_namespace(&self, namespace: &str) -> Namespaced<'_, Self>
Namespaced instance, all keys specified will be separated into their
own storage designated by namespace.Source§impl AsyncLowLevelConnection for AsyncDatabase
impl AsyncLowLevelConnection for AsyncDatabase
Source§fn apply_transaction<'life0, 'async_trait>(
&'life0 self,
transaction: Transaction,
) -> Pin<Box<dyn Future<Output = Result<Vec<OperationResult>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn apply_transaction<'life0, 'async_trait>(
&'life0 self,
transaction: Transaction,
) -> Pin<Box<dyn Future<Output = Result<Vec<OperationResult>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Transaction to the Schema. If any
operation in the Transaction fails, none of the operations will be
applied to the Schema.Source§fn get_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
id: DocumentId,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Option<OwnedDocument>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
id: DocumentId,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Option<OwnedDocument>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn list_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: Range<DocumentId>,
order: Sort,
limit: Option<u32>,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: Range<DocumentId>,
order: Sort,
limit: Option<u32>,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
ids from the named
collection. To retrieve all documents, pass in .. for ids. Read moreSource§fn list_headers_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: Range<DocumentId>,
order: Sort,
limit: Option<u32>,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Vec<Header>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_headers_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: Range<DocumentId>,
order: Sort,
limit: Option<u32>,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Vec<Header>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
ids from the named
collection. To retrieve all documents, pass in .. for ids. Read moreSource§fn count_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: Range<DocumentId>,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn count_from_collection<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: Range<DocumentId>,
collection: &'life1 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_multiple_from_collection<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ids: &'life1 [DocumentId],
collection: &'life2 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_multiple_from_collection<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
ids: &'life1 [DocumentId],
collection: &'life2 CollectionName,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
ids from the named collection.
Documents that are not found are not returned, but no error will be
generated. Read moreSource§fn compact_collection_by_name<'life0, 'async_trait>(
&'life0 self,
collection: CollectionName,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn compact_collection_by_name<'life0, 'async_trait>(
&'life0 self,
collection: CollectionName,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn query_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<Serialized>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<Serialized>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
view. Read moreSource§fn query_by_name_with_docs<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<MappedSerializedDocuments, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_by_name_with_docs<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<MappedSerializedDocuments, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
view with their source
documents. Read moreSource§fn reduce_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reduce_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
view. Read moreSource§fn reduce_grouped_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<MappedSerializedValue>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn reduce_grouped_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<MappedSerializedValue>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
view, reducing the values by each
unique key. Read moreSource§fn delete_docs_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_docs_by_name<'life0, 'life1, 'async_trait>(
&'life0 self,
view: &'life1 ViewName,
key: Option<SerializedQueryKey>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
view. Read moreSource§fn insert<'life0, 'life1, 'async_trait, C, PrimaryKey, B>(
&'life0 self,
id: Option<&'life1 PrimaryKey>,
contents: B,
) -> Pin<Box<dyn Future<Output = Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'async_trait + Send + ?Sized,
C: 'async_trait + Collection,
B: 'async_trait + Into<Bytes> + Send,
Self: 'async_trait,
fn insert<'life0, 'life1, 'async_trait, C, PrimaryKey, B>(
&'life0 self,
id: Option<&'life1 PrimaryKey>,
contents: B,
) -> Pin<Box<dyn Future<Output = Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'async_trait + Send + ?Sized,
C: 'async_trait + Collection,
B: 'async_trait + Into<Bytes> + Send,
Self: 'async_trait,
schema::Schema
for the Collection C. If id is None a unique id will be
generated. If an id is provided and a document already exists with that
id, a conflict error will be returned. Read moreSource§fn update<'life0, 'life1, 'async_trait, C, D>(
&'life0 self,
doc: &'life1 mut D,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
C: 'async_trait + Collection,
D: 'async_trait + Document<C> + Send + Sync,
Self: 'async_trait,
fn update<'life0, 'life1, 'async_trait, C, D>(
&'life0 self,
doc: &'life1 mut D,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
C: 'async_trait + Collection,
D: 'async_trait + Document<C> + Send + Sync,
Self: 'async_trait,
schema::Schema for the
Collection(schema::Collection) C. Upon success, doc.revision
will be updated with the new revision. Read moreSource§fn overwrite<'a, 'life0, 'life1, 'async_trait, C, PrimaryKey>(
&'life0 self,
id: &'life1 PrimaryKey,
contents: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
C: Collection + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'async_trait,
Self: 'async_trait,
fn overwrite<'a, 'life0, 'life1, 'async_trait, C, PrimaryKey>(
&'life0 self,
id: &'life1 PrimaryKey,
contents: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error>> + Send + 'async_trait>>where
'a: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
C: Collection + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'async_trait,
Self: 'async_trait,
doc.revision will be updated with the new revision information. Read moreSource§fn get<'life0, 'life1, 'async_trait, C, PrimaryKey>(
&'life0 self,
id: &'life1 PrimaryKey,
) -> Pin<Box<dyn Future<Output = Result<Option<OwnedDocument>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
C: Collection + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'async_trait + ?Sized,
Self: 'async_trait,
fn get<'life0, 'life1, 'async_trait, C, PrimaryKey>(
&'life0 self,
id: &'life1 PrimaryKey,
) -> Pin<Box<dyn Future<Output = Result<Option<OwnedDocument>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
C: Collection + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'async_trait + ?Sized,
Self: 'async_trait,
Source§fn get_multiple<'id, 'life0, 'async_trait, C, PrimaryKey, DocumentIds, I>(
&'life0 self,
ids: DocumentIds,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
DocumentIds: IntoIterator<Item = &'id PrimaryKey, IntoIter = I> + Send + Sync + 'async_trait,
I: Iterator<Item = &'id PrimaryKey> + Send + Sync + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'id + 'async_trait + ?Sized,
Self: 'async_trait,
fn get_multiple<'id, 'life0, 'async_trait, C, PrimaryKey, DocumentIds, I>(
&'life0 self,
ids: DocumentIds,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
DocumentIds: IntoIterator<Item = &'id PrimaryKey, IntoIter = I> + Send + Sync + 'async_trait,
I: Iterator<Item = &'id PrimaryKey> + Send + Sync + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + 'id + 'async_trait + ?Sized,
Self: 'async_trait,
ids. Documents that are not found
are not returned, but no error will be generated. Read moreSource§fn list<'id, 'life0, 'async_trait, C, R, PrimaryKey>(
&'life0 self,
ids: R,
order: Sort,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
R: Into<RangeRef<'id, <C as Collection>::PrimaryKey, PrimaryKey>> + Send + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + PartialEq + 'id + 'async_trait + ?Sized,
<C as Collection>::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,
Self: 'async_trait,
fn list<'id, 'life0, 'async_trait, C, R, PrimaryKey>(
&'life0 self,
ids: R,
order: Sort,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<OwnedDocument>, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
R: Into<RangeRef<'id, <C as Collection>::PrimaryKey, PrimaryKey>> + Send + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + PartialEq + 'id + 'async_trait + ?Sized,
<C as Collection>::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,
Self: 'async_trait,
ids. To retrieve all
documents, pass in .. for ids. Read moreSource§fn list_headers<'id, 'life0, 'async_trait, C, R, PrimaryKey>(
&'life0 self,
ids: R,
order: Sort,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Header>, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
R: Into<RangeRef<'id, <C as Collection>::PrimaryKey, PrimaryKey>> + Send + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + PartialEq + 'id + 'async_trait + ?Sized,
<C as Collection>::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,
Self: 'async_trait,
fn list_headers<'id, 'life0, 'async_trait, C, R, PrimaryKey>(
&'life0 self,
ids: R,
order: Sort,
limit: Option<u32>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Header>, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
R: Into<RangeRef<'id, <C as Collection>::PrimaryKey, PrimaryKey>> + Send + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + PartialEq + 'id + 'async_trait + ?Sized,
<C as Collection>::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,
Self: 'async_trait,
ids. To retrieve all
documents, pass in .. for ids. Read moreSource§fn count<'id, 'life0, 'async_trait, C, R, PrimaryKey>(
&'life0 self,
ids: R,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
R: Into<RangeRef<'id, <C as Collection>::PrimaryKey, PrimaryKey>> + Send + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + PartialEq + 'id + 'async_trait + ?Sized,
<C as Collection>::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,
Self: 'async_trait,
fn count<'id, 'life0, 'async_trait, C, R, PrimaryKey>(
&'life0 self,
ids: R,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
'id: 'async_trait,
'life0: 'async_trait,
C: Collection + 'async_trait,
R: Into<RangeRef<'id, <C as Collection>::PrimaryKey, PrimaryKey>> + Send + 'async_trait,
PrimaryKey: KeyEncoding<<C as Collection>::PrimaryKey> + PartialEq + 'id + 'async_trait + ?Sized,
<C as Collection>::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,
Self: 'async_trait,
ids. Read moreSource§fn delete<'life0, 'life1, 'async_trait, C, H>(
&'life0 self,
doc: &'life1 H,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
C: 'async_trait + Collection,
H: 'async_trait + HasHeader + Send + Sync,
Self: 'async_trait,
fn delete<'life0, 'life1, 'async_trait, C, H>(
&'life0 self,
doc: &'life1 H,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
C: 'async_trait + Collection,
H: 'async_trait + HasHeader + Send + Sync,
Self: 'async_trait,
Document from the database. Read moreSource§fn query<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<CollectionMap<<<V as View>::Collection as Collection>::PrimaryKey, <V as View>::Key, <V as View>::Value>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
fn query<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<CollectionMap<<<V as View>::Collection as Collection>::PrimaryKey, <V as View>::Key, <V as View>::Value>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
Source§fn query_with_docs<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<MappedDocuments<OwnedDocument, V>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
fn query_with_docs<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<MappedDocuments<OwnedDocument, V>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
Source§fn query_with_collection_docs<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<MappedDocuments<CollectionDocument<<V as View>::Collection>, V>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: SerializedView + 'async_trait,
<V as View>::Collection: SerializedCollection,
<<V as View>::Collection as SerializedCollection>::Contents: Debug,
Self: 'async_trait,
fn query_with_collection_docs<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<MappedDocuments<CollectionDocument<<V as View>::Collection>, V>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: SerializedView + 'async_trait,
<V as View>::Collection: SerializedCollection,
<<V as View>::Collection as SerializedCollection>::Contents: Debug,
Self: 'async_trait,
Source§fn reduce<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<<V as View>::Value, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
fn reduce<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<<V as View>::Value, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
Source§fn reduce_grouped<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<MappedValue<<V as View>::Key, <V as View>::Value>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
fn reduce_grouped<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<Vec<MappedValue<<V as View>::Key, <V as View>::Value>>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
Source§fn delete_docs<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
fn delete_docs<'life0, 'life1, 'async_trait, V, Key>(
&'life0 self,
key: Option<QueryKey<'life1, <V as View>::Key, Key>>,
access_policy: AccessPolicy,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Key: KeyEncoding<<V as View>::Key> + PartialEq + 'async_trait + ?Sized,
<V as View>::Key: Borrow<Key> + PartialEq<Key>,
V: 'async_trait + SerializedView,
Self: 'async_trait,
Source§impl AsyncPubSub for AsyncDatabase
impl AsyncPubSub for AsyncDatabase
Source§type Subscriber = Subscriber
type Subscriber = Subscriber
PubSub connection.Source§fn create_subscriber<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Self::Subscriber, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn create_subscriber<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Self::Subscriber, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Subscriber for this relay.Source§fn publish_bytes<'life0, 'async_trait>(
&'life0 self,
topic: Vec<u8>,
payload: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn publish_bytes<'life0, 'async_trait>(
&'life0 self,
topic: Vec<u8>,
payload: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
payload to all subscribers of topic.Source§fn publish_bytes_to_all<'life0, 'async_trait>(
&'life0 self,
topics: impl 'async_trait + IntoIterator<Item = Vec<u8>> + Send,
payload: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn publish_bytes_to_all<'life0, 'async_trait>(
&'life0 self,
topics: impl 'async_trait + IntoIterator<Item = Vec<u8>> + Send,
payload: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
payload to all subscribers of all topics.Source§fn publish<'life0, 'life1, 'life2, 'async_trait, Topic, Payload>(
&'life0 self,
topic: &'life1 Topic,
payload: &'life2 Payload,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
fn publish<'life0, 'life1, 'life2, 'async_trait, Topic, Payload>( &'life0 self, topic: &'life1 Topic, payload: &'life2 Payload, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
payload to all subscribers of topic.Source§fn publish_to_all<'topics, 'life0, 'life1, 'async_trait, Topics, Topic, Payload>(
&'life0 self,
topics: Topics,
payload: &'life1 Payload,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'topics: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Topics: 'async_trait + IntoIterator<Item = &'topics Topic> + Send + 'topics,
Topic: 'async_trait + Serialize + Send + 'topics,
Payload: 'async_trait + Serialize + Send + Sync,
Self: 'async_trait,
fn publish_to_all<'topics, 'life0, 'life1, 'async_trait, Topics, Topic, Payload>(
&'life0 self,
topics: Topics,
payload: &'life1 Payload,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'topics: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Topics: 'async_trait + IntoIterator<Item = &'topics Topic> + Send + 'topics,
Topic: 'async_trait + Serialize + Send + 'topics,
Payload: 'async_trait + Serialize + Send + Sync,
Self: 'async_trait,
payload to all subscribers of all topics.Source§impl Clone for AsyncDatabase
impl Clone for AsyncDatabase
Source§fn clone(&self) -> AsyncDatabase
fn clone(&self) -> AsyncDatabase
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl DatabaseNonBlocking for AsyncDatabase
impl DatabaseNonBlocking for AsyncDatabase
Source§impl Debug for AsyncDatabase
impl Debug for AsyncDatabase
Source§impl<'a> From<&'a AsyncDatabase> for Database
impl<'a> From<&'a AsyncDatabase> for Database
Source§fn from(database: &'a AsyncDatabase) -> Self
fn from(database: &'a AsyncDatabase) -> Self
Source§impl From<AsyncDatabase> for Database
impl From<AsyncDatabase> for Database
Source§fn from(database: AsyncDatabase) -> Self
fn from(database: AsyncDatabase) -> Self
Source§impl HasSchema for AsyncDatabase
impl HasSchema for AsyncDatabase
Source§impl HasSession for AsyncDatabase
impl HasSession for AsyncDatabase
Source§fn allowed_to<'a, R, P>(&self, resource_name: R, action: &P) -> bool
fn allowed_to<'a, R, P>(&self, resource_name: R, action: &P) -> bool
action is permitted against resource_name.Source§fn check_permission<'a, R, P>(
&self,
resource_name: R,
action: &P,
) -> Result<(), Error>
fn check_permission<'a, R, P>( &self, resource_name: R, action: &P, ) -> Result<(), Error>
action is permitted against resource_name. If permission
is denied, returns a PermissionDenied
error.Auto Trait Implementations§
impl Freeze for AsyncDatabase
impl !RefUnwindSafe for AsyncDatabase
impl Send for AsyncDatabase
impl Sync for AsyncDatabase
impl Unpin for AsyncDatabase
impl !UnwindSafe for AsyncDatabase
Blanket Implementations§
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<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