Struct bonsaidb_local::Database
source · [−]pub struct Database { /* private fields */ }Expand description
A database stored in BonsaiDb. This type blocks the current thread when
used. See AsyncDatabase for this type’s async counterpart.
Converting between Blocking and Async 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},
Database,
};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Collection)]
#[collection(name = "blog-posts")]
struct BlogPost {
pub title: String,
pub contents: String,
}
let db = Database::open::<BlogPost>(StorageConfiguration::new("my-db.bonsaidb"))?;Under the hood, this initializes a Storage 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
sourceimpl Database
impl Database
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 open<DB: Schema>(
configuration: StorageConfiguration
) -> Result<Self, Error>
pub fn open<DB: Schema>(
configuration: StorageConfiguration
) -> Result<Self, Error>
Creates a Storage with a single-database named “default” with its data
stored at path. This requires exclusive access to the storage location
configured. Attempting to open the same path multiple times concurrently
will lead to errors.
Using this method is perfect if only one database is being used.
However, if multiple databases are needed, it is much better to store
multiple databases in a single Storage instance rather than creating
multiple independent databases using this method.
When opening multiple databases using this function, each database will
have its own thread pool, cache, task worker pool, and more. By using a
single Storage instance, BonsaiDb will use less resources and likely
perform better.
sourcepub fn into_async(self) -> AsyncDatabase
pub fn into_async(self) -> AsyncDatabase
Converts this instance into its blocking version, which is able to be used without async. The returned instance uses the current Tokio runtime handle to spawn blocking tasks.
Panics
Panics if called outside the context of a Tokio runtime.
sourcepub fn into_async_with_runtime(self, runtime: Handle) -> AsyncDatabase
pub fn into_async_with_runtime(self, runtime: Handle) -> AsyncDatabase
Converts this instance into its blocking version, which is able to be used without async. The returned instance uses the provided runtime handle to spawn blocking tasks.
sourcepub fn to_async(&self) -> AsyncDatabase
pub fn to_async(&self) -> AsyncDatabase
Converts this instance into its blocking version, which is able to be used without async. The returned instance uses the current Tokio runtime handle to spawn blocking tasks.
Panics
Panics if called outside the context of a Tokio runtime.
sourcepub fn to_async_with_runtime(&self, runtime: Handle) -> AsyncDatabase
pub fn to_async_with_runtime(&self, runtime: Handle) -> AsyncDatabase
Converts this instance into its blocking version, which is able to be used without async. The returned instance uses the provided runtime handle to spawn blocking tasks.
Trait Implementations
sourceimpl Connection for Database
impl Connection for Database
type Storage = Storage
type Storage = Storage
The StorageConnection type that is paired with this type.
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. Read more
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. Read more
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. Read more
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. Read more
sourceimpl DatabaseNonBlocking for Database
impl DatabaseNonBlocking for Database
sourceimpl<'a> From<&'a AsyncDatabase> for Database
impl<'a> From<&'a AsyncDatabase> for Database
sourcefn from(database: &'a AsyncDatabase) -> Self
fn from(database: &'a AsyncDatabase) -> Self
Converts to this type from the input type.
sourceimpl From<AsyncDatabase> for Database
impl From<AsyncDatabase> for Database
sourcefn from(database: AsyncDatabase) -> Self
fn from(database: AsyncDatabase) -> Self
Converts to this type from the input type.
sourceimpl HasSession for Database
impl HasSession for Database
sourceimpl KeyValue for Database
impl KeyValue for Database
sourcefn execute_key_operation(&self, op: KeyOperation) -> Result<Output, Error>
fn execute_key_operation(&self, op: KeyOperation) -> Result<Output, Error>
Executes a single KeyOperation.
sourcefn set_key<S, V>(&'a self, key: S, value: &'a V) -> Builder<'a, Self, V> where
S: Into<String>,
V: Serialize + Send + Sync,
fn set_key<S, V>(&'a self, key: S, value: &'a V) -> Builder<'a, Self, V> where
S: Into<String>,
V: Serialize + Send + Sync,
Sets key to value. This function returns a builder that is also a
Future. Awaiting the builder will execute Command::Set with the options
given. Read more
sourcefn set_binary_key<S>(&'a self, key: S, bytes: &'a [u8]) -> Builder<'a, Self, ()> where
S: Into<String>,
fn set_binary_key<S>(&'a self, key: S, bytes: &'a [u8]) -> Builder<'a, Self, ()> where
S: Into<String>,
Sets key to bytes. This function returns a builder that is also
a Future. Awaiting the builder will execute Command::Set with
the options given. Read more
sourcefn set_numeric_key<S, V>(&self, key: S, value: V) -> Builder<'_, Self, ()> where
S: Into<String>,
V: Into<Numeric>,
fn set_numeric_key<S, V>(&self, key: S, value: V) -> Builder<'_, Self, ()> where
S: Into<String>,
V: Into<Numeric>,
Sets 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. Read more
sourcefn increment_key_by<S, V>(&self, key: S, value: V) -> Builder<'_, Self, V> where
S: Into<String> + Send + Sync,
V: Into<Numeric> + TryFrom<Numeric, Error = IncompatibleTypeError> + Send + Sync,
fn increment_key_by<S, V>(&self, key: S, value: V) -> Builder<'_, Self, V> where
S: Into<String> + Send + Sync,
V: Into<Numeric> + TryFrom<Numeric, Error = IncompatibleTypeError> + Send + Sync,
Increments 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. Read more
sourcefn decrement_key_by<S, V>(&self, key: S, value: V) -> Builder<'_, Self, V> where
S: Into<String> + Send + Sync,
V: Into<Numeric> + TryFrom<Numeric, Error = IncompatibleTypeError> + Send + Sync,
fn decrement_key_by<S, V>(&self, key: S, value: V) -> Builder<'_, Self, V> where
S: Into<String> + Send + Sync,
V: Into<Numeric> + TryFrom<Numeric, Error = IncompatibleTypeError> + Send + Sync,
Decrements 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. Read more
sourcefn get_key<S>(&self, key: S) -> Builder<'_, Self> where
S: Into<String>,
fn get_key<S>(&self, key: S) -> Builder<'_, Self> where
S: Into<String>,
Gets the value stored at key. This function returns a builder that is also a
Future. Awaiting the builder will execute Command::Get with the options
given. Read more
sourcefn delete_key<S>(&self, key: S) -> Result<KeyStatus, Error> where
S: Into<String> + Send,
fn delete_key<S>(&self, key: S) -> Result<KeyStatus, Error> where
S: Into<String> + Send,
Deletes the value stored at key.
sourcefn key_namespace(&self) -> Option<&str>
fn key_namespace(&self) -> Option<&str>
The current namespace.
sourcefn with_key_namespace(&self, namespace: &str) -> Namespaced<'_, Self>
fn with_key_namespace(&self, namespace: &str) -> Namespaced<'_, Self>
Access this Key-Value store within a namespace. When using the returned
Namespaced instance, all keys specified will be separated into their
own storage designated by namespace. Read more
sourceimpl LowLevelConnection for Database
impl LowLevelConnection for Database
sourcefn apply_transaction(
&self,
transaction: Transaction
) -> Result<Vec<OperationResult>, Error>
fn apply_transaction(
&self,
transaction: Transaction
) -> Result<Vec<OperationResult>, Error>
Applies a Transaction to the schema::Schema. If any operation in the
Transaction fails, none of the operations will be applied to the
schema::Schema. Read more
sourcefn get_from_collection(
&self,
id: DocumentId,
collection: &CollectionName
) -> Result<Option<OwnedDocument>, Error>
fn get_from_collection(
&self,
id: DocumentId,
collection: &CollectionName
) -> Result<Option<OwnedDocument>, Error>
Retrieves the document with id stored within the named collection. Read more
sourcefn list_from_collection(
&self,
ids: Range<DocumentId>,
sort: Sort,
limit: Option<u32>,
collection: &CollectionName
) -> Result<Vec<OwnedDocument>, Error>
fn list_from_collection(
&self,
ids: Range<DocumentId>,
sort: Sort,
limit: Option<u32>,
collection: &CollectionName
) -> Result<Vec<OwnedDocument>, Error>
Retrieves all documents within the range of ids from the named
collection. To retrieve all documents, pass in .. for ids. Read more
sourcefn list_headers_from_collection(
&self,
ids: Range<DocumentId>,
sort: Sort,
limit: Option<u32>,
collection: &CollectionName
) -> Result<Vec<Header>, Error>
fn list_headers_from_collection(
&self,
ids: Range<DocumentId>,
sort: Sort,
limit: Option<u32>,
collection: &CollectionName
) -> Result<Vec<Header>, Error>
Retrieves all headers within the range of ids from the named
collection. To retrieve all documents, pass in .. for ids. Read more
sourcefn count_from_collection(
&self,
ids: Range<DocumentId>,
collection: &CollectionName
) -> Result<u64, Error>
fn count_from_collection(
&self,
ids: Range<DocumentId>,
collection: &CollectionName
) -> Result<u64, Error>
Counts the number of documents within the range of ids from the named
collection. Read more
sourcefn get_multiple_from_collection(
&self,
ids: &[DocumentId],
collection: &CollectionName
) -> Result<Vec<OwnedDocument>, Error>
fn get_multiple_from_collection(
&self,
ids: &[DocumentId],
collection: &CollectionName
) -> Result<Vec<OwnedDocument>, Error>
Retrieves all documents matching ids from the named collection.
Documents that are not found are not returned, but no error will be
generated. Read more
sourcefn compact_collection_by_name(
&self,
collection: CollectionName
) -> Result<(), Error>
fn compact_collection_by_name(
&self,
collection: CollectionName
) -> Result<(), Error>
Compacts the collection to reclaim unused disk space. Read more
sourcefn query_by_name(
&self,
view: &ViewName,
key: Option<QueryKey<Bytes>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<Vec<Serialized>, Error>
fn query_by_name(
&self,
view: &ViewName,
key: Option<QueryKey<Bytes>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<Vec<Serialized>, Error>
Queries for view entries from the named view. Read more
sourcefn query_by_name_with_docs(
&self,
view: &ViewName,
key: Option<QueryKey<Bytes>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<MappedSerializedDocuments, Error>
fn query_by_name_with_docs(
&self,
view: &ViewName,
key: Option<QueryKey<Bytes>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<MappedSerializedDocuments, Error>
Queries for view entries from the named view with their source
documents. Read more
sourcefn reduce_by_name(
&self,
view_name: &ViewName,
key: Option<QueryKey<Bytes>>,
access_policy: AccessPolicy
) -> Result<Vec<u8>, Error>
fn reduce_by_name(
&self,
view_name: &ViewName,
key: Option<QueryKey<Bytes>>,
access_policy: AccessPolicy
) -> Result<Vec<u8>, Error>
Reduces the view entries from the named view. Read more
sourcefn reduce_grouped_by_name(
&self,
view_name: &ViewName,
key: Option<QueryKey<Bytes>>,
access_policy: AccessPolicy
) -> Result<Vec<MappedSerializedValue>, Error>
fn reduce_grouped_by_name(
&self,
view_name: &ViewName,
key: Option<QueryKey<Bytes>>,
access_policy: AccessPolicy
) -> Result<Vec<MappedSerializedValue>, Error>
Reduces the view entries from the named view, reducing the values by each
unique key. Read more
sourcefn delete_docs_by_name(
&self,
view: &ViewName,
key: Option<QueryKey<Bytes>>,
access_policy: AccessPolicy
) -> Result<u64, Error>
fn delete_docs_by_name(
&self,
view: &ViewName,
key: Option<QueryKey<Bytes>>,
access_policy: AccessPolicy
) -> Result<u64, Error>
Deletes all source documents for entries that match within the named
view. Read more
sourcefn insert<C, PrimaryKey, B>(
&self,
id: Option<PrimaryKey>,
contents: B
) -> Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error> where
C: Collection,
PrimaryKey: Send + for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
B: Into<Bytes> + Send,
fn insert<C, PrimaryKey, B>(
&self,
id: Option<PrimaryKey>,
contents: B
) -> Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error> where
C: Collection,
PrimaryKey: Send + for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
B: Into<Bytes> + Send,
Inserts a newly created document into the connected 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 more
sourcefn update<C, D>(&self, doc: &mut D) -> Result<(), Error> where
C: Collection,
D: Document<C> + Send + Sync,
fn update<C, D>(&self, doc: &mut D) -> Result<(), Error> where
C: Collection,
D: Document<C> + Send + Sync,
Updates an existing document in the connected schema::Schema for the
Collection C. Upon success, doc.revision will be updated with
the new revision. Read more
sourcefn overwrite<C, PrimaryKey>(
&self,
id: PrimaryKey,
contents: Vec<u8, Global>
) -> Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error> where
C: Collection,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
fn overwrite<C, PrimaryKey>(
&self,
id: PrimaryKey,
contents: Vec<u8, Global>
) -> Result<CollectionHeader<<C as Collection>::PrimaryKey>, Error> where
C: Collection,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
Overwrites an existing document, or inserts a new document. Upon success,
doc.revision will be updated with the new revision information. Read more
sourcefn get<C, PrimaryKey>(
&self,
id: PrimaryKey
) -> Result<Option<OwnedDocument>, Error> where
C: Collection,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
fn get<C, PrimaryKey>(
&self,
id: PrimaryKey
) -> Result<Option<OwnedDocument>, Error> where
C: Collection,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
Retrieves a stored document from Collection C identified by id. Read more
sourcefn get_multiple<C, PrimaryKey, DocumentIds, I>(
&self,
ids: DocumentIds
) -> Result<Vec<OwnedDocument, Global>, Error> where
C: Collection,
DocumentIds: IntoIterator<Item = PrimaryKey, IntoIter = I> + Send + Sync,
I: Iterator<Item = PrimaryKey> + Send + Sync,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
fn get_multiple<C, PrimaryKey, DocumentIds, I>(
&self,
ids: DocumentIds
) -> Result<Vec<OwnedDocument, Global>, Error> where
C: Collection,
DocumentIds: IntoIterator<Item = PrimaryKey, IntoIter = I> + Send + Sync,
I: Iterator<Item = PrimaryKey> + Send + Sync,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
Retrieves all documents matching ids. Documents that are not found are
not returned, but no error will be generated. Read more
sourcefn list<C, R, PrimaryKey>(
&self,
ids: R,
order: Sort,
limit: Option<u32>
) -> Result<Vec<OwnedDocument, Global>, Error> where
C: Collection,
R: Into<Range<PrimaryKey>> + Send,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
fn list<C, R, PrimaryKey>(
&self,
ids: R,
order: Sort,
limit: Option<u32>
) -> Result<Vec<OwnedDocument, Global>, Error> where
C: Collection,
R: Into<Range<PrimaryKey>> + Send,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
Retrieves all documents within the range of ids. To retrieve all
documents, pass in .. for ids. Read more
sourcefn list_headers<C, R, PrimaryKey>(
&self,
ids: R,
order: Sort,
limit: Option<u32>
) -> Result<Vec<Header, Global>, Error> where
C: Collection,
R: Into<Range<PrimaryKey>> + Send,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
fn list_headers<C, R, PrimaryKey>(
&self,
ids: R,
order: Sort,
limit: Option<u32>
) -> Result<Vec<Header, Global>, Error> where
C: Collection,
R: Into<Range<PrimaryKey>> + Send,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
Retrieves all documents within the range of ids. To retrieve all
documents, pass in .. for ids. Read more
sourcefn count<C, R, PrimaryKey>(&self, ids: R) -> Result<u64, Error> where
C: Collection,
R: Into<Range<PrimaryKey>> + Send,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
fn count<C, R, PrimaryKey>(&self, ids: R) -> Result<u64, Error> where
C: Collection,
R: Into<Range<PrimaryKey>> + Send,
PrimaryKey: for<'k> KeyEncoding<'k, <C as Collection>::PrimaryKey>,
Counts the number of documents within the range of ids. Read more
sourcefn delete<C, H>(&self, doc: &H) -> Result<(), Error> where
C: Collection,
H: HasHeader + Send + Sync,
fn delete<C, H>(&self, doc: &H) -> Result<(), Error> where
C: Collection,
H: HasHeader + Send + Sync,
Removes a Document from the database. Read more
sourcefn query<V, Key>(
&self,
key: Option<QueryKey<Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<Vec<Map<<V as View>::Key, <V as View>::Value>, Global>, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
fn query<V, Key>(
&self,
key: Option<QueryKey<Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<Vec<Map<<V as View>::Key, <V as View>::Value>, Global>, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
sourcefn query_with_docs<V, Key>(
&self,
key: Option<QueryKey<Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<MappedDocuments<OwnedDocument, V>, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
fn query_with_docs<V, Key>(
&self,
key: Option<QueryKey<Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<MappedDocuments<OwnedDocument, V>, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
sourcefn query_with_collection_docs<V, Key>(
&self,
key: Option<QueryKey<Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<MappedDocuments<CollectionDocument<<V as View>::Collection>, V>, Error> where
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
V: SerializedView,
<V as View>::Collection: SerializedCollection,
<<V as View>::Collection as SerializedCollection>::Contents: Debug,
fn query_with_collection_docs<V, Key>(
&self,
key: Option<QueryKey<Key>>,
order: Sort,
limit: Option<u32>,
access_policy: AccessPolicy
) -> Result<MappedDocuments<CollectionDocument<<V as View>::Collection>, V>, Error> where
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
V: SerializedView,
<V as View>::Collection: SerializedCollection,
<<V as View>::Collection as SerializedCollection>::Contents: Debug,
sourcefn reduce<V, Key>(
&self,
key: Option<QueryKey<Key>>,
access_policy: AccessPolicy
) -> Result<<V as View>::Value, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
fn reduce<V, Key>(
&self,
key: Option<QueryKey<Key>>,
access_policy: AccessPolicy
) -> Result<<V as View>::Value, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
sourcefn reduce_grouped<V, Key>(
&self,
key: Option<QueryKey<Key>>,
access_policy: AccessPolicy
) -> Result<Vec<MappedValue<<V as View>::Key, <V as View>::Value>, Global>, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
fn reduce_grouped<V, Key>(
&self,
key: Option<QueryKey<Key>>,
access_policy: AccessPolicy
) -> Result<Vec<MappedValue<<V as View>::Key, <V as View>::Value>, Global>, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
sourcefn delete_docs<V, Key>(
&self,
key: Option<QueryKey<Key>>,
access_policy: AccessPolicy
) -> Result<u64, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
fn delete_docs<V, Key>(
&self,
key: Option<QueryKey<Key>>,
access_policy: AccessPolicy
) -> Result<u64, Error> where
V: SerializedView,
Key: for<'k> KeyEncoding<'k, <V as View>::Key>,
Deletes all of the documents associated with this view. Read more
sourceimpl PubSub for Database
impl PubSub for Database
type Subscriber = Subscriber
type Subscriber = Subscriber
The Subscriber type for this PubSub connection.
sourcefn create_subscriber(&self) -> Result<Self::Subscriber, Error>
fn create_subscriber(&self) -> Result<Self::Subscriber, Error>
Create a new Subscriber for this relay.
sourcefn publish_bytes(&self, topic: Vec<u8>, payload: Vec<u8>) -> Result<(), Error>
fn publish_bytes(&self, topic: Vec<u8>, payload: Vec<u8>) -> Result<(), Error>
Publishes a payload to all subscribers of topic.
sourcefn publish_bytes_to_all(
&self,
topics: impl IntoIterator<Item = Vec<u8>> + Send,
payload: Vec<u8>
) -> Result<(), Error>
fn publish_bytes_to_all(
&self,
topics: impl IntoIterator<Item = Vec<u8>> + Send,
payload: Vec<u8>
) -> Result<(), Error>
Publishes a payload to all subscribers of all topics.
sourcefn publish<Topic, Payload>(
&self,
topic: &Topic,
payload: &Payload
) -> Result<(), Error> where
Topic: Serialize,
Payload: Serialize,
fn publish<Topic, Payload>(
&self,
topic: &Topic,
payload: &Payload
) -> Result<(), Error> where
Topic: Serialize,
Payload: Serialize,
Publishes a payload to all subscribers of topic.
sourcefn publish_to_all<'topics, Topics, Topic, Payload>(
&self,
topics: Topics,
payload: &Payload
) -> Result<(), Error> where
Topics: 'topics + IntoIterator<Item = &'topics Topic>,
Topic: 'topics + Serialize,
Payload: Serialize,
fn publish_to_all<'topics, Topics, Topic, Payload>(
&self,
topics: Topics,
payload: &Payload
) -> Result<(), Error> where
Topics: 'topics + IntoIterator<Item = &'topics Topic>,
Topic: 'topics + Serialize,
Payload: Serialize,
Publishes a payload to all subscribers of all topics.
Auto Trait Implementations
impl !RefUnwindSafe for Database
impl Send for Database
impl Sync for Database
impl Unpin for Database
impl !UnwindSafe for Database
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more