pub struct Database {
    pub name: String,
    pub schema: SchemaName,
}
Expand description

A database stored in BonsaiDb.

Fields§

§name: String

The name of the database.

§schema: SchemaName

The schema defining the database.

Trait Implementations§

source§

impl Clone for Database

source§

fn clone(&self) -> Database

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Collection for Database

§

type PrimaryKey = u64

The unique id type. Each document stored in a collection will be uniquely identified by this type. Read more
source§

fn collection_name() -> CollectionName

The unique name of this collection. Each collection must be uniquely named within the Schema it is registered within.
source§

fn define_views(schema: &mut Schematic) -> Result<(), Error>

Defines all Views in this collection in schema.
source§

fn encryption_key() -> Option<KeyId>

If a KeyId is returned, this collection will be stored encrypted at-rest using the key specified.
source§

impl Debug for Database

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl DefaultSerialization for Database

source§

fn natural_id(&self) -> Option<Self::PrimaryKey>

Returns the natural identifier of contents. This is called when pushing values into a collection, before attempting to automatically assign a unique id.
source§

impl<'de> Deserialize<'de> for Database

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl NamedCollection for Database

§

type ByNameView = ByName

The name view defined for the collection.
source§

fn load<'name, N: Nameable<'name, Self::PrimaryKey> + Send + Sync, C: Connection>( id: N, connection: &C ) -> Result<Option<CollectionDocument<Self>>, Error>where Self: SerializedCollection + Sized + 'static,

Gets a CollectionDocument with id from connection.
source§

fn load_async<'name, 'life0, 'async_trait, N, C>( id: N, connection: &'life0 C ) -> Pin<Box<dyn Future<Output = Result<Option<CollectionDocument<Self>>, Error>> + Send + 'async_trait>>where Self: SerializedCollection + Sized + 'static + Send + 'async_trait, N: 'async_trait + Nameable<'name, Self::PrimaryKey> + Send + Sync, C: 'async_trait + AsyncConnection, 'name: 'async_trait, 'life0: 'async_trait,

Gets a CollectionDocument with id from connection.
source§

fn entry<'connection, 'name, N: Into<NamedReference<'name, Self::PrimaryKey>> + Send + Sync, C: Connection>( id: N, connection: &'connection C ) -> Entry<'connection, 'name, C, Self, (), ()>where Self: SerializedCollection + Sized,

Gets a CollectionDocument with id from connection.
source§

fn entry_async<'connection, 'name, N: Into<NamedReference<'name, Self::PrimaryKey>> + Send + Sync, C: AsyncConnection>( id: N, connection: &'connection C ) -> AsyncEntry<'connection, 'name, C, Self, (), ()> where Self: SerializedCollection + Sized,

Gets a CollectionDocument with id from connection.
source§

fn load_document<'name, N: Nameable<'name, Self::PrimaryKey> + Send + Sync, C: Connection>( name: N, connection: &C ) -> Result<Option<OwnedDocument>, Error>where Self: SerializedCollection + Sized,

Loads a document from this collection by name, if applicable. Return Ok(None) if unsupported.
source§

fn load_document_async<'name, 'life0, 'async_trait, N, C>( name: N, connection: &'life0 C ) -> Pin<Box<dyn Future<Output = Result<Option<OwnedDocument>, Error>> + Send + 'async_trait>>where Self: SerializedCollection + Sized + Send + 'async_trait, N: 'async_trait + Nameable<'name, Self::PrimaryKey> + Send + Sync, C: 'async_trait + AsyncConnection, 'name: 'async_trait, 'life0: 'async_trait,

Loads a document from this collection by name, if applicable. Return Ok(None) if unsupported.
source§

fn delete_by_name<C: Connection>( name: &str, connection: &C ) -> Result<bool, Error>where Self: SerializedCollection + Sized,

Deletes a document by its name. Returns true if a document was deleted.
source§

fn delete_by_name_async<'life0, 'life1, 'async_trait, C>( name: &'life0 str, connection: &'life1 C ) -> Pin<Box<dyn Future<Output = Result<bool, Error>> + Send + 'async_trait>>where Self: SerializedCollection + Sized + Send + 'async_trait, C: 'async_trait + AsyncConnection, 'life0: 'async_trait, 'life1: 'async_trait,

Deletes a document by its name. Returns true if a document was deleted.
source§

impl PartialEq<Database> for Database

source§

fn eq(&self, other: &Database) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Serialize for Database

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl Eq for Database

source§

impl StructuralEq for Database

source§

impl StructuralPartialEq for Database

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> Schema for Twhere T: Collection + 'static,

source§

fn schema_name() -> SchemaName

Returns the unique SchemaName for this schema.
source§

fn define_collections(schema: &mut Schematic) -> Result<(), Error>

Defines the Collections into schema.
source§

fn schematic() -> Result<Schematic, Error>

Retrieves the Schematic for this schema.
source§

impl<T> SerializedCollection for Twhere T: DefaultSerialization + Serialize + DeserializeOwned,

§

type Contents = T

The type of the contents stored in documents in this collection.
§

type Format = Pot

The serialization format for this collection.
source§

fn format() -> <T as SerializedCollection>::Format

Returns the configured instance of Self::Format.
source§

fn natural_id( contents: &<T as SerializedCollection>::Contents ) -> Option<<T as Collection>::PrimaryKey>

Returns the natural identifier of contents. This is called when pushing values into a collection, before attempting to automatically assign a unique id.
source§

fn deserialize(data: &[u8]) -> Result<Self::Contents, Error>

Deserialize data as Self::Contents using this collection’s format.
source§

fn document_contents<D: Document<Self>>( doc: &D ) -> Result<Self::Contents, Error>where Self: Sized,

Returns the deserialized contents of doc.
source§

fn set_document_contents<D: Document<Self>>( doc: &mut D, contents: Self::Contents ) -> Result<(), Error>where Self: Sized,

Sets the contents of doc to contents.
source§

fn serialize(item: &Self::Contents) -> Result<Vec<u8>, Error>

Serialize item using this collection’s format.
source§

fn get<C, PrimaryKey>( id: &PrimaryKey, connection: &C ) -> Result<Option<CollectionDocument<Self>>, Error>where C: Connection, PrimaryKey: KeyEncoding<Self::PrimaryKey>, Self: Sized,

Gets a CollectionDocument with id from connection. Read more
source§

fn get_async<'life0, 'life1, 'async_trait, C, PrimaryKey>( id: &'life0 PrimaryKey, connection: &'life1 C ) -> Pin<Box<dyn Future<Output = Result<Option<CollectionDocument<Self>>, Error>> + Send + 'async_trait>>where C: AsyncConnection + 'async_trait, PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'async_trait, Self: Sized + Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Gets a CollectionDocument with id from connection. Read more
source§

fn get_multiple<'id, C, DocumentIds, PrimaryKey, I>( ids: DocumentIds, connection: &C ) -> Result<Vec<CollectionDocument<Self>>, Error>where C: Connection, DocumentIds: IntoIterator<Item = &'id PrimaryKey, IntoIter = I> + Send + Sync, I: Iterator<Item = &'id PrimaryKey> + Send + Sync, PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'id, Self: Sized,

Retrieves all documents matching ids. Documents that are not found are not returned, but no error will be generated. Read more
source§

fn get_multiple_async<'id, 'life0, 'async_trait, C, DocumentIds, PrimaryKey, I>( ids: DocumentIds, connection: &'life0 C ) -> Pin<Box<dyn Future<Output = Result<Vec<CollectionDocument<Self>>, Error>> + Send + 'async_trait>>where C: AsyncConnection + 'async_trait, DocumentIds: IntoIterator<Item = &'id PrimaryKey, IntoIter = I> + Send + Sync + 'async_trait, I: Iterator<Item = &'id PrimaryKey> + Send + Sync + 'async_trait, PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'id + 'async_trait, Self: Sized + Send + 'async_trait, 'id: 'async_trait, 'life0: 'async_trait,

Retrieves all documents matching ids. Documents that are not found are not returned, but no error will be generated. Read more
source§

fn list<'id, R, PrimaryKey, C>( ids: R, connection: &'id C ) -> List<'id, C, Self, PrimaryKey>where R: Into<RangeRef<'id, Self::PrimaryKey, PrimaryKey>>, C: Connection, PrimaryKey: KeyEncoding<Self::PrimaryKey> + PartialEq + 'id, Self::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>, Self: Sized,

Retrieves all documents matching the range of ids. Read more
source§

fn list_async<'id, R, PrimaryKey, C>( ids: R, connection: &'id C ) -> AsyncList<'id, C, Self, PrimaryKey> where R: Into<RangeRef<'id, Self::PrimaryKey, PrimaryKey>>, C: AsyncConnection, PrimaryKey: KeyEncoding<Self::PrimaryKey> + PartialEq + 'id + ?Sized, Self::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>, Self: Sized,

Retrieves all documents matching the range of ids. Read more
source§

fn list_with_prefix<'a, PrimaryKey, C>( prefix: &'a PrimaryKey, connection: &'a C ) -> List<'a, C, Self, PrimaryKey>where C: Connection, Self: Sized, PrimaryKey: IntoPrefixRange<'a, Self::PrimaryKey> + KeyEncoding<Self::PrimaryKey> + PartialEq + ?Sized, Self::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,

Retrieves all documents with ids that start with prefix. Read more
source§

fn list_with_prefix_async<'a, PrimaryKey, C>( prefix: &'a PrimaryKey, connection: &'a C ) -> AsyncList<'a, C, Self, PrimaryKey> where C: AsyncConnection, Self: Sized, PrimaryKey: IntoPrefixRange<'a, Self::PrimaryKey> + KeyEncoding<Self::PrimaryKey> + PartialEq + ?Sized, Self::PrimaryKey: Borrow<PrimaryKey> + PartialEq<PrimaryKey>,

Retrieves all documents with ids that start with prefix. Read more
source§

fn all<C: Connection>(connection: &C) -> List<'_, C, Self, Self::PrimaryKey>where Self: Sized,

Retrieves all documents. Read more
source§

fn all_async<C: AsyncConnection>( connection: &C ) -> AsyncList<'_, C, Self, Self::PrimaryKey> where Self: Sized,

Retrieves all documents. Read more
source§

fn push<Cn: Connection>( contents: Self::Contents, connection: &Cn ) -> Result<CollectionDocument<Self>, InsertError<Self::Contents>>where Self: Sized + 'static,

Pushes this value into the collection, returning the created document. This function is useful when Self != Self::Contents. Read more
source§

fn push_async<'life0, 'async_trait, Cn>( contents: Self::Contents, connection: &'life0 Cn ) -> Pin<Box<dyn Future<Output = Result<CollectionDocument<Self>, InsertError<Self::Contents>>> + Send + 'async_trait>>where Self: Sized + 'static + Send + 'async_trait, Self::Contents: 'async_trait, Cn: 'async_trait + AsyncConnection, 'life0: 'async_trait,

Pushes this value into the collection, returning the created document. This function is useful when Self != Self::Contents. Read more
source§

fn push_all<Contents: IntoIterator<Item = Self::Contents>, Cn: Connection>( contents: Contents, connection: &Cn ) -> Result<Vec<CollectionDocument<Self>>, Error>where Self: Sized + 'static, Self::PrimaryKey: Default,

Pushes all contents in a single transaction. If successful, all collection documents will be returned. If an error occurs during this operation, no documents will be pushed. Read more
source§

fn push_all_async<'life0, 'async_trait, Contents, Cn>( contents: Contents, connection: &'life0 Cn ) -> Pin<Box<dyn Future<Output = Result<Vec<CollectionDocument<Self>>, Error>> + Send + 'async_trait>>where Self: Sized + 'static + Send + 'async_trait, Self::PrimaryKey: Default, Contents::IntoIter: Send, Contents: 'async_trait + IntoIterator<Item = Self::Contents> + Send, Cn: 'async_trait + AsyncConnection, 'life0: 'async_trait,

Pushes all contents in a single transaction. If successful, all collection documents will be returned. If an error occurs during this operation, no documents will be pushed. Read more
source§

fn push_into<Cn: Connection>( self, connection: &Cn ) -> Result<CollectionDocument<Self>, InsertError<Self>>where Self: SerializedCollection<Contents = Self> + Sized + 'static,

Pushes this value into the collection, returning the created document. Read more
source§

fn push_into_async<'life0, 'async_trait, Cn>( self, connection: &'life0 Cn ) -> Pin<Box<dyn Future<Output = Result<CollectionDocument<Self>, InsertError<Self>>> + Send + 'async_trait>>where Self: SerializedCollection<Contents = Self> + Sized + 'static + Send + 'async_trait, Cn: 'async_trait + AsyncConnection, 'life0: 'async_trait,

Pushes this value into the collection, returning the created document. Read more
source§

fn push_in_transaction( &self, transaction: &mut Transaction ) -> Result<(), Error>where Self: SerializedCollection<Contents = Self> + Sized + 'static,

Pushes an insert Operation without a key to the transaction for this document, allowing the database to generate the primary key for the document. Read more
source§

fn insert<PrimaryKey, Cn>( id: &PrimaryKey, contents: Self::Contents, connection: &Cn ) -> Result<CollectionDocument<Self>, InsertError<Self::Contents>>where PrimaryKey: KeyEncoding<Self::PrimaryKey>, Cn: Connection, Self: Sized + 'static,

Inserts this value into the collection with the specified id, returning the created document. Read more
source§

fn insert_async<'life0, 'life1, 'async_trait, PrimaryKey, Cn>( id: &'life0 PrimaryKey, contents: Self::Contents, connection: &'life1 Cn ) -> Pin<Box<dyn Future<Output = Result<CollectionDocument<Self>, InsertError<Self::Contents>>> + Send + 'async_trait>>where PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'async_trait, Cn: AsyncConnection + 'async_trait, Self: Sized + 'static + Send + 'async_trait, Self::Contents: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Inserts this value into the collection with the specified id, returning the created document. Read more
source§

fn insert_into<PrimaryKey, Cn>( self, id: &PrimaryKey, connection: &Cn ) -> Result<CollectionDocument<Self>, InsertError<Self>>where PrimaryKey: KeyEncoding<Self::PrimaryKey>, Cn: Connection, Self: SerializedCollection<Contents = Self> + Sized + 'static,

Inserts this value into the collection with the given id, returning the created document. Read more
source§

fn insert_into_async<'life0, 'life1, 'async_trait, PrimaryKey, Cn>( self, id: &'life0 PrimaryKey, connection: &'life1 Cn ) -> Pin<Box<dyn Future<Output = Result<CollectionDocument<Self>, InsertError<Self>>> + Send + 'async_trait>>where PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'async_trait, Cn: AsyncConnection + 'async_trait, Self: SerializedCollection<Contents = Self> + Sized + 'static + Send + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Inserts this value into the collection with the given id, returning the created document. Read more
source§

fn insert_in_transaction( &self, key: &Self::PrimaryKey, transaction: &mut Transaction ) -> Result<(), Error>where Self: SerializedCollection<Contents = Self> + Sized + 'static,

Pushes an insert Operation to the transaction for this document. Read more
source§

fn overwrite<PrimaryKey, Cn>( id: &PrimaryKey, contents: Self::Contents, connection: &Cn ) -> Result<CollectionDocument<Self>, InsertError<Self::Contents>>where PrimaryKey: KeyEncoding<Self::PrimaryKey>, Cn: Connection, Self: Sized + 'static,

Overwrites this value into the collection with the specified id, returning the created or updated document. Read more
source§

fn overwrite_async<'life0, 'life1, 'async_trait, PrimaryKey, Cn>( id: &'life0 PrimaryKey, contents: Self::Contents, connection: &'life1 Cn ) -> Pin<Box<dyn Future<Output = Result<CollectionDocument<Self>, InsertError<Self::Contents>>> + Send + 'async_trait>>where PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'async_trait, Cn: AsyncConnection + 'async_trait, Self: Sized + 'static + Send + 'async_trait, Self::Contents: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Overwrites this value into the collection with the specified id, returning the created or updated document. Read more
source§

fn overwrite_into<Cn: Connection, PrimaryKey>( self, id: &PrimaryKey, connection: &Cn ) -> Result<CollectionDocument<Self>, InsertError<Self>>where PrimaryKey: KeyEncoding<Self::PrimaryKey>, Self: SerializedCollection<Contents = Self> + Sized + 'static,

Overwrites this value into the collection with the given id, returning the created or updated document. Read more
source§

fn overwrite_in_transaction<PrimaryKey>( &self, id: &PrimaryKey, transaction: &mut Transaction ) -> Result<(), Error>where PrimaryKey: KeyEncoding<Self::PrimaryKey>, Self: SerializedCollection<Contents = Self> + Sized + 'static,

Pushes an overwrite Operation to the transaction for this document. Read more
source§

fn overwrite_into_async<'life0, 'life1, 'async_trait, Cn, PrimaryKey>( self, id: &'life0 PrimaryKey, connection: &'life1 Cn ) -> Pin<Box<dyn Future<Output = Result<CollectionDocument<Self>, InsertError<Self>>> + Send + 'async_trait>>where PrimaryKey: KeyEncoding<Self::PrimaryKey> + 'async_trait, Self: SerializedCollection<Contents = Self> + Sized + 'static + Send + 'async_trait, Cn: 'async_trait + AsyncConnection, 'life0: 'async_trait, 'life1: 'async_trait,

Overwrites this value into the collection with the given id, returning the created or updated document. Read more
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> DeserializeOwned for Twhere T: for<'de> Deserialize<'de>,