1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use std::fmt::Debug; use super::names::InvalidNameError; use crate::{ schema::{CollectionName, Schematic}, Error, }; /// A namespaced collection of `Document<Self>` items and views. pub trait Collection: Debug + Send + Sync { /// The `Id` of this collection. fn collection_name() -> Result<CollectionName, InvalidNameError>; /// Defines all `View`s in this collection in `schema`. fn define_views(schema: &mut Schematic) -> Result<(), Error>; }