Trait Filter

Source
pub trait Filter {
    // Required methods
    fn new() -> Self;
    fn into_document(self) -> Result<Document, Error>;
}
Expand description

Used to mark a type as a filter for use in queries.

§Examples

Creating a filter for user.

use std::convert::TryFrom;

use mongod::bson::Document;
use mongod::{Filter, Comparator, Error};
use mongod::ext::bson::Bson;

#[derive(Default)]
pub struct UserFilter {
    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)
    }
}

Required Methods§

Source

fn new() -> Self

Constructs a new Filter.

Source

fn into_document(self) -> Result<Document, Error>

Converts a Filter into a BSON Document.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§