use crate::search::phrase::Phrase;
#[cfg(feature = "rusqlite")]
mod rusqlite;
pub mod builder;
#[derive(Clone, Debug)]
pub enum CriteriumSearchChain {
And(Vec<Self>),
Or(Vec<Self>),
NotChain(Box<Self>),
PhraseChain(Vec<Phrase>),
Phrase(Phrase),
}
impl CriteriumSearchChain {
pub fn invert(self) -> Self {
if let CriteriumSearchChain::NotChain(chain) = self {
return *chain;
} else {
return CriteriumSearchChain::NotChain(Box::new(self));
}
}
pub fn invert_if(self, do_invert: bool) -> Self {
if do_invert {
self.invert()
} else {
self
}
}
}