Skip to main content

ConditionList

Trait ConditionList 

Source
pub trait ConditionList<'a, V: SQLParam>: Sealed {
    type Nullable: Nullability;
    type Aggregate: AggregateKind;
}
Expand description

A list of SQL conditions combined under a single logical operator.

Implemented for tuples whose every element is a boolean expression — or an Option of one — for arities 1..=8, extended to 16 by the col16 feature. The associated markers fold across the elements exactly as chained and calls would: the list is nullable if any element is nullable, and aggregate if any element is aggregate.

A bare tuple additionally is a condition (it implements Expr) up to arity 8. Past that, combine through all or any, or nest tuples — the result is the same flat AND.

This trait is sealed; the crate provides every implementation.

Required Associated Types§

Source

type Nullable: Nullability

Nullability folded across every element.

Source

type Aggregate: AggregateKind

Aggregate kind folded across every element.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, T10: Expr<'a, V>, T11: Expr<'a, V>, T12: Expr<'a, V>, T13: Expr<'a, V>, T14: Expr<'a, V>, T15: Expr<'a, V>, <T15 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) as ConditionList<'a, V>>::Nullable: NullOr<<T15 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) as ConditionList<'a, V>>::Aggregate: AggOr<<T15 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, T10: Expr<'a, V>, T11: Expr<'a, V>, T12: Expr<'a, V>, T13: Expr<'a, V>, T14: Expr<'a, V>, <T14 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) as ConditionList<'a, V>>::Nullable: NullOr<<T14 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) as ConditionList<'a, V>>::Aggregate: AggOr<<T14 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, T10: Expr<'a, V>, T11: Expr<'a, V>, T12: Expr<'a, V>, T13: Expr<'a, V>, <T13 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) as ConditionList<'a, V>>::Nullable: NullOr<<T13 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) as ConditionList<'a, V>>::Aggregate: AggOr<<T13 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, T10: Expr<'a, V>, T11: Expr<'a, V>, T12: Expr<'a, V>, <T12 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as ConditionList<'a, V>>::Nullable: NullOr<<T12 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) as ConditionList<'a, V>>::Aggregate: AggOr<<T12 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, T10: Expr<'a, V>, T11: Expr<'a, V>, <T11 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as ConditionList<'a, V>>::Nullable: NullOr<<T11 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) as ConditionList<'a, V>>::Aggregate: AggOr<<T11 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, T10: Expr<'a, V>, <T10 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) as ConditionList<'a, V>>::Nullable: NullOr<<T10 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) as ConditionList<'a, V>>::Aggregate: AggOr<<T10 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, T9: Expr<'a, V>, <T9 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7, T8): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8) as ConditionList<'a, V>>::Nullable: NullOr<<T9 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7, T8) as ConditionList<'a, V>>::Aggregate: AggOr<<T9 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, T8: Expr<'a, V>, <T8 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6, T7): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6, T7) as ConditionList<'a, V>>::Nullable: NullOr<<T8 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6, T7) as ConditionList<'a, V>>::Aggregate: AggOr<<T8 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, T7: Expr<'a, V>, <T7 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5, T6): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5, T6) as ConditionList<'a, V>>::Nullable: NullOr<<T7 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5, T6) as ConditionList<'a, V>>::Aggregate: AggOr<<T7 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5, T6> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, T6: Expr<'a, V>, <T6 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4, T5): ConditionList<'a, V>, <(T0, T1, T2, T3, T4, T5) as ConditionList<'a, V>>::Nullable: NullOr<<T6 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4, T5) as ConditionList<'a, V>>::Aggregate: AggOr<<T6 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4, T5> ConditionList<'a, V> for (T0, T1, T2, T3, T4, T5)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, T5: Expr<'a, V>, <T5 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3, T4): ConditionList<'a, V>, <(T0, T1, T2, T3, T4) as ConditionList<'a, V>>::Nullable: NullOr<<T5 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3, T4) as ConditionList<'a, V>>::Aggregate: AggOr<<T5 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3, T4> ConditionList<'a, V> for (T0, T1, T2, T3, T4)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, T4: Expr<'a, V>, <T4 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2, T3): ConditionList<'a, V>, <(T0, T1, T2, T3) as ConditionList<'a, V>>::Nullable: NullOr<<T4 as Expr<'a, V>>::Nullable>, <(T0, T1, T2, T3) as ConditionList<'a, V>>::Aggregate: AggOr<<T4 as Expr<'a, V>>::Aggregate>,

Source§

impl<'a, V, T0, T1, T2, T3> ConditionList<'a, V> for (T0, T1, T2, T3)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, T3: Expr<'a, V>, <T3 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1, T2): ConditionList<'a, V>, <(T0, T1, T2) as ConditionList<'a, V>>::Nullable: NullOr<<T3 as Expr<'a, V>>::Nullable>, <(T0, T1, T2) as ConditionList<'a, V>>::Aggregate: AggOr<<T3 as Expr<'a, V>>::Aggregate>,

Source§

type Nullable = <<(T0, T1, T2) as ConditionList<'a, V>>::Nullable as NullOr<<T3 as Expr<'a, V>>::Nullable>>::Output

Source§

type Aggregate = <<(T0, T1, T2) as ConditionList<'a, V>>::Aggregate as AggOr<<T3 as Expr<'a, V>>::Aggregate>>::Output

Source§

impl<'a, V, T0, T1, T2> ConditionList<'a, V> for (T0, T1, T2)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, T2: Expr<'a, V>, <T2 as Expr<'a, V>>::SQLType: BooleanLike, (T0, T1): ConditionList<'a, V>, <(T0, T1) as ConditionList<'a, V>>::Nullable: NullOr<<T2 as Expr<'a, V>>::Nullable>, <(T0, T1) as ConditionList<'a, V>>::Aggregate: AggOr<<T2 as Expr<'a, V>>::Aggregate>,

Source§

type Nullable = <<(T0, T1) as ConditionList<'a, V>>::Nullable as NullOr<<T2 as Expr<'a, V>>::Nullable>>::Output

Source§

type Aggregate = <<(T0, T1) as ConditionList<'a, V>>::Aggregate as AggOr<<T2 as Expr<'a, V>>::Aggregate>>::Output

Source§

impl<'a, V, T0, T1> ConditionList<'a, V> for (T0, T1)
where V: SQLParam + 'a, T0: Expr<'a, V>, T1: Expr<'a, V>, <T1 as Expr<'a, V>>::SQLType: BooleanLike, (T0,): ConditionList<'a, V>, <(T0,) as ConditionList<'a, V>>::Nullable: NullOr<<T1 as Expr<'a, V>>::Nullable>, <(T0,) as ConditionList<'a, V>>::Aggregate: AggOr<<T1 as Expr<'a, V>>::Aggregate>,

Source§

type Nullable = <<(T0,) as ConditionList<'a, V>>::Nullable as NullOr<<T1 as Expr<'a, V>>::Nullable>>::Output

Source§

type Aggregate = <<(T0,) as ConditionList<'a, V>>::Aggregate as AggOr<<T1 as Expr<'a, V>>::Aggregate>>::Output

Source§

impl<'a, V, T0> ConditionList<'a, V> for (T0,)
where V: SQLParam + 'a, T0: Expr<'a, V>, <T0 as Expr<'a, V>>::SQLType: BooleanLike,

Source§

type Nullable = <T0 as Expr<'a, V>>::Nullable

Source§

type Aggregate = <T0 as Expr<'a, V>>::Aggregate

Implementors§