use crate::conditions::Condition;
use crate::internal::query_context::QueryContext;
use crate::sealed;
pub trait ConditionMarker<'a>: Send {
sealed!(trait);
fn build(&self, context: &mut QueryContext<'a>) -> Option<usize>;
}
impl<'a> ConditionMarker<'a> for () {
sealed!(impl);
fn build(&self, _context: &mut QueryContext<'a>) -> Option<usize> {
None
}
}
impl<'a, T: Condition<'a>> ConditionMarker<'a> for T {
sealed!(impl);
fn build(&self, context: &mut QueryContext<'a>) -> Option<usize> {
Some(context.add_condition(self))
}
}