Trait mongod::AsFilter [−][src]
pub trait AsFilter<T: Filter> { fn filter() -> T; fn into_filter(self) -> T; }
Expand description
Used to tie a type implementing Collection
to its companion Filter
type.
Examples
Tying User
to its Filter
.
use std::convert::TryFrom; use mongod::bson::Document; use mongod::{AsFilter, Filter, Comparator, Error}; use mongod::ext::bson::Bson; #[derive(Bson, Mongo)] #[mongo(collection="users")] pub struct User { pub name: String, } #[derive(Default)] pub struct UserFilter { pub name: Option<Comparator<String>>, } impl Filter for UserFilter { fn new() -> Self { Self::default() } fn into_document(self) -> Result<Document, Error> { let mut doc = Document::new(); if let Some(value) = self.name { doc.insert("name", Bson::try_from(value)?.0); } Ok(doc) } } impl AsFilter<UserFilter> for User { fn filter() -> UserFilter { UserFilter::default() } fn into_filter(self) -> UserFilter { UserFilter { name: Some(Comparator::Eq(self.name)), } } }
Required methods
fn into_filter(self) -> T
fn into_filter(self) -> T
Converts the Collection
instance into its filter.