Struct bonsaidb_core::schema::Schematic
source · pub struct Schematic {
pub name: SchemaName,
/* private fields */
}
Expand description
A collection of defined collections and views.
Fields§
§name: SchemaName
The name of the schema this was built from.
Implementations§
source§impl Schematic
impl Schematic
sourcepub fn from_schema<S: Schema + ?Sized>() -> Result<Self, Error>
pub fn from_schema<S: Schema + ?Sized>() -> Result<Self, Error>
Returns an initialized version from S
.
sourcepub fn define_collection<C: Collection + 'static>(
&mut self
) -> Result<(), Error>
pub fn define_collection<C: Collection + 'static>( &mut self ) -> Result<(), Error>
Adds the collection C
and its views.
sourcepub fn define_view<V: MapReduce + ViewSchema<View = V> + SerializedView + Clone + 'static>(
&mut self,
view: V
) -> Result<(), Error>
pub fn define_view<V: MapReduce + ViewSchema<View = V> + SerializedView + Clone + 'static>( &mut self, view: V ) -> Result<(), Error>
Adds the view V
.
sourcepub fn define_view_with_schema<V: SerializedView + 'static, S: MapReduce + ViewSchema<View = V> + 'static>(
&mut self,
view: V,
schema: S
) -> Result<(), Error>
pub fn define_view_with_schema<V: SerializedView + 'static, S: MapReduce + ViewSchema<View = V> + 'static>( &mut self, view: V, schema: S ) -> Result<(), Error>
Adds the view V
.
sourcepub fn contains_collection<C: Collection + 'static>(&self) -> bool
pub fn contains_collection<C: Collection + 'static>(&self) -> bool
Returns true
if this schema contains the collection C
.
sourcepub fn collection_primary_key_description<'a>(
&'a self,
collection: &CollectionName
) -> Option<&'a KeyDescription>
pub fn collection_primary_key_description<'a>( &'a self, collection: &CollectionName ) -> Option<&'a KeyDescription>
Returns the description of the primary keyof the collection with the
given name, or None
if the collection can’t be found.
sourcepub fn next_id_for_collection(
&self,
collection: &CollectionName,
id: Option<DocumentId>
) -> Result<DocumentId, Error>
pub fn next_id_for_collection( &self, collection: &CollectionName, id: Option<DocumentId> ) -> Result<DocumentId, Error>
Returns the next id in sequence for the collection, if the primary key type supports the operation and the next id would not overflow.
sourcepub fn view_by_name(&self, name: &ViewName) -> Result<&dyn Serialized, Error>
pub fn view_by_name(&self, name: &ViewName) -> Result<&dyn Serialized, Error>
Looks up a view::Serialized
by name.
sourcepub fn view<V: View + 'static>(&self) -> Result<&dyn Serialized, Error>
pub fn view<V: View + 'static>(&self) -> Result<&dyn Serialized, Error>
Looks up a view::Serialized
through the the type V
.
sourcepub fn views(&self) -> impl Iterator<Item = &dyn Serialized>
pub fn views(&self) -> impl Iterator<Item = &dyn Serialized>
Iterates over all registered views.
sourcepub fn views_in_collection(
&self,
collection: &CollectionName
) -> impl Iterator<Item = &dyn Serialized>
pub fn views_in_collection( &self, collection: &CollectionName ) -> impl Iterator<Item = &dyn Serialized>
Iterates over all views that belong to collection
.
sourcepub fn eager_views_in_collection(
&self,
collection: &CollectionName
) -> impl Iterator<Item = &dyn Serialized>
pub fn eager_views_in_collection( &self, collection: &CollectionName ) -> impl Iterator<Item = &dyn Serialized>
Iterates over all views that are eagerly updated that belong to
collection
.
sourcepub fn encryption_key_for_collection(
&self,
collection: &CollectionName
) -> Option<&KeyId>
pub fn encryption_key_for_collection( &self, collection: &CollectionName ) -> Option<&KeyId>
Returns a collection’s default encryption key, if one was defined.
sourcepub fn collections(&self) -> impl Iterator<Item = &CollectionName>
pub fn collections(&self) -> impl Iterator<Item = &CollectionName>
Returns a list of all collections contained in this schematic.