Skip to main content

ExprSources

Trait ExprSources 

Source
pub trait ExprSources {
    type Sources;
}
Expand description

The tables an expression reads, as a type-level tree.

Columns record their table, operators combine their operands’ trees, and literals, placeholders and raw SQL read nothing (()). Queries check the tree against their FROM/JOIN scope when they are run with .all(), .get() or .rows(), so using a column of a table that was never joined is a compile error. See crate::scope for the node types.

Required Associated Types§

Source

type Sources

Type-level tree with one Src leaf per column read.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl ExprSources for &[u8]

Source§

impl ExprSources for &str

Source§

impl ExprSources for ()

() reads nothing (COUNT(*)).

Source§

impl ExprSources for Cow<'_, [u8]>

Source§

impl ExprSources for String

Source§

impl ExprSources for Vec<u8>

Source§

impl ExprSources for bool

Source§

impl ExprSources for f32

Source§

impl ExprSources for f64

Source§

impl ExprSources for i8

Source§

impl ExprSources for i16

Source§

impl ExprSources for i32

Source§

impl ExprSources for i64

Source§

impl ExprSources for isize

Source§

impl ExprSources for u8

Source§

impl ExprSources for u16

Source§

impl ExprSources for u32

Source§

impl ExprSources for u64

Source§

impl ExprSources for usize

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources, T10: ExprSources, T11: ExprSources, T12: ExprSources, T13: ExprSources, T14: ExprSources, T15: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, (<T9 as ExprSources>::Sources, (<T10 as ExprSources>::Sources, (<T11 as ExprSources>::Sources, (<T12 as ExprSources>::Sources, (<T13 as ExprSources>::Sources, (<T14 as ExprSources>::Sources, <T15 as ExprSources>::Sources)))))))))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources, T10: ExprSources, T11: ExprSources, T12: ExprSources, T13: ExprSources, T14: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, (<T9 as ExprSources>::Sources, (<T10 as ExprSources>::Sources, (<T11 as ExprSources>::Sources, (<T12 as ExprSources>::Sources, (<T13 as ExprSources>::Sources, <T14 as ExprSources>::Sources))))))))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources, T10: ExprSources, T11: ExprSources, T12: ExprSources, T13: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, (<T9 as ExprSources>::Sources, (<T10 as ExprSources>::Sources, (<T11 as ExprSources>::Sources, (<T12 as ExprSources>::Sources, <T13 as ExprSources>::Sources)))))))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources, T10: ExprSources, T11: ExprSources, T12: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, (<T9 as ExprSources>::Sources, (<T10 as ExprSources>::Sources, (<T11 as ExprSources>::Sources, <T12 as ExprSources>::Sources))))))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources, T10: ExprSources, T11: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, (<T9 as ExprSources>::Sources, (<T10 as ExprSources>::Sources, <T11 as ExprSources>::Sources)))))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources, T10: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, (<T9 as ExprSources>::Sources, <T10 as ExprSources>::Sources))))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources, T9: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, (<T8 as ExprSources>::Sources, <T9 as ExprSources>::Sources)))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources, T8: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, (<T7 as ExprSources>::Sources, <T8 as ExprSources>::Sources))))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources, T7: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, (<T6 as ExprSources>::Sources, <T7 as ExprSources>::Sources)))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources, T6: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5, T6)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, (<T5 as ExprSources>::Sources, <T6 as ExprSources>::Sources))))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources, T5: ExprSources> ExprSources for (T0, T1, T2, T3, T4, T5)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, (<T4 as ExprSources>::Sources, <T5 as ExprSources>::Sources)))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources, T4: ExprSources> ExprSources for (T0, T1, T2, T3, T4)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, (<T3 as ExprSources>::Sources, <T4 as ExprSources>::Sources))))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources, T3: ExprSources> ExprSources for (T0, T1, T2, T3)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, (<T2 as ExprSources>::Sources, <T3 as ExprSources>::Sources)))

Source§

impl<T0: ExprSources, T1: ExprSources, T2: ExprSources> ExprSources for (T0, T1, T2)

Source§

type Sources = (<T0 as ExprSources>::Sources, (<T1 as ExprSources>::Sources, <T2 as ExprSources>::Sources))

Source§

impl<T0: ExprSources, T1: ExprSources> ExprSources for (T0, T1)

Source§

impl<T0: ExprSources> ExprSources for (T0,)

Source§

impl<T: ExprSources + ?Sized> ExprSources for &T

Source§

impl<T: ExprSources> ExprSources for Option<T>

Source§

impl<T: OrderTerm, const N: usize> ExprSources for [T; N]

Source§

impl<T: OrderTerm> ExprSources for Vec<T>

Source§

impl<const N: usize> ExprSources for [char; N]

Source§

impl<const N: usize> ExprSources for [u8; N]

Implementors§

Source§

impl ExprSources for Nil

Expression lists (Cons<E, ...>) read every element’s sources.

Source§

impl ExprSources for Placeholder

Source§

impl ExprSources for SQLBytes<'_>

Source§

impl<C> ExprSources for Excluded<C>

EXCLUDED is the proposed insert row, not a FROM source.

Source§

impl<E: ExprSources, Name> ExprSources for NamedExpr<E, Name>

Source§

impl<E: ExprSources> ExprSources for AliasedExpr<E>

Source§

impl<Head: ExprSources, Tail: ExprSources> ExprSources for Cons<Head, Tail>

Source§

type Sources = (<Head as ExprSources>::Sources, <Tail as ExprSources>::Sources)

Source§

impl<Name, Output> ExprSources for DerivedField<Name, Output>

Source§

impl<T: DataType, N: Nullability> ExprSources for TypedPlaceholder<T, N>

Source§

impl<V: SQLParam, S> ExprSources for Ordered<'_, V, S>

Source§

impl<V: SQLParam, T: DataType, N: Nullability, A: AggregateKind, S> ExprSources for SQLExpr<'_, V, T, N, A, S>

Source§

impl<V: SQLParam> ExprSources for SQL<'_, V>