Trait pliantdb_core::schema::view::View [−][src]
pub trait View: Send + Sync + Debug + 'static { type Collection: Collection; type Key: Key + 'static; type Value: Serialize + for<'de> Deserialize<'de> + Send + Sync; fn version(&self) -> u64; fn name(&self) -> Result<Name, InvalidNameError>; fn map(&self, document: &Document<'_>) -> MapResult<Self::Key, Self::Value>; fn view_name(&self) -> Result<ViewName, InvalidNameError> { ... } fn reduce(
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
rereduce: bool
) -> Result<Self::Value, Error> { ... } }
A map/reduce powered indexing and aggregation schema.
Inspired by CouchDB
’s view
system
This implementation is under active development, our own docs explaining our implementation will be written as things are solidified. The guide has an overview.
Associated Types
type Collection: Collection
[src]
The collection this view belongs to
type Key: Key + 'static
[src]
The key for this view.
type Value: Serialize + for<'de> Deserialize<'de> + Send + Sync
[src]
An associated type that can be stored with each entry in the view.
Required methods
fn version(&self) -> u64
[src]
The version of the view. Changing this value will cause indexes to be rebuilt.
fn name(&self) -> Result<Name, InvalidNameError>
[src]
The name of the view. Must be unique per collection.
fn map(&self, document: &Document<'_>) -> MapResult<Self::Key, Self::Value>
[src]
The map function for this view. This function is responsible for emitting entries for any documents that should be contained in this View. If None is returned, the View will not include the document.
Provided methods
fn view_name(&self) -> Result<ViewName, InvalidNameError>
[src]
The namespaced name of the view.
fn reduce(
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
rereduce: bool
) -> Result<Self::Value, Error>
[src]
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
rereduce: bool
) -> Result<Self::Value, Error>
The reduce function for this view. If Err(Error::ReduceUnimplemented)
is returned, queries that ask for a reduce operation will return an
error. See CouchDB
’s Reduce/Rereduce
documentation
for the design this implementation will be inspired by
Implementors
impl View for BasicByBrokenParentId
[src]
impl View for BasicByBrokenParentId
[src]impl View for BasicByCategory
[src]
impl View for BasicByCategory
[src]type Collection = Basic
type Key = String
type Value = usize
fn version(&self) -> u64
[src]
fn name(&self) -> Result<Name, InvalidNameError>
[src]
fn map(&self, document: &Document<'_>) -> MapResult<Self::Key, Self::Value>
[src]
fn reduce(
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
_rereduce: bool
) -> Result<Self::Value, Error>
[src]
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
_rereduce: bool
) -> Result<Self::Value, Error>
impl View for BasicByParentId
[src]
impl View for BasicByParentId
[src]type Collection = Basic
type Key = Option<u64>
type Value = usize
fn version(&self) -> u64
[src]
fn name(&self) -> Result<Name, InvalidNameError>
[src]
fn map(&self, document: &Document<'_>) -> MapResult<Self::Key, Self::Value>
[src]
fn reduce(
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
_rereduce: bool
) -> Result<Self::Value, Error>
[src]
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
_rereduce: bool
) -> Result<Self::Value, Error>
impl View for BasicCount
[src]
impl View for BasicCount
[src]type Collection = Basic
type Key = ()
type Value = usize
fn version(&self) -> u64
[src]
fn name(&self) -> Result<Name, InvalidNameError>
[src]
fn map(&self, document: &Document<'_>) -> MapResult<Self::Key, Self::Value>
[src]
fn reduce(
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
_rereduce: bool
) -> Result<Self::Value, Error>
[src]
&self,
mappings: &[MappedValue<Self::Key, Self::Value>],
_rereduce: bool
) -> Result<Self::Value, Error>