# Trait diesel::expression::Expression
[−]
[src]

pub trait Expression { type SqlType; }

Represents a typed fragment of SQL.

Apps should not need to implement this type directly, but it may be common
to use this in where clauses. Libraries should consider using
`diesel_infix_operator!`

or
`diesel_postfix_operator!`

instead of
implementing this directly.

## Associated Types

`type SqlType`

## Implementors

`impl Expression for now type SqlType = Timestamp;`

`impl<ST> Expression for SqlLiteral<ST> type SqlType = ST;`

`impl<T: Expression + ?Sized> Expression for Box<T> type SqlType = T::SqlType;`

`impl<'a, T: Expression + ?Sized> Expression for &'a T type SqlType = T::SqlType;`

`impl<A: Expression + NonAggregate> Expression for (A,) type SqlType = (<A as Expression>::SqlType,);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate> Expression for (A, B) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate> Expression for (A, B, C) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate> Expression for (A, B, C, D) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate> Expression for (A, B, C, D, E) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate> Expression for (A, B, C, D, E, F) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate, K: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J, K) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType, <K as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate, K: Expression + NonAggregate, L: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J, K, L) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType, <K as Expression>::SqlType, <L as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate, K: Expression + NonAggregate, L: Expression + NonAggregate, M: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J, K, L, M) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType, <K as Expression>::SqlType, <L as Expression>::SqlType, <M as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate, K: Expression + NonAggregate, L: Expression + NonAggregate, M: Expression + NonAggregate, N: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J, K, L, M, N) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType, <K as Expression>::SqlType, <L as Expression>::SqlType, <M as Expression>::SqlType, <N as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate, K: Expression + NonAggregate, L: Expression + NonAggregate, M: Expression + NonAggregate, N: Expression + NonAggregate, O: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType, <K as Expression>::SqlType, <L as Expression>::SqlType, <M as Expression>::SqlType, <N as Expression>::SqlType, <O as Expression>::SqlType);`

`impl<A: Expression + NonAggregate, B: Expression + NonAggregate, C: Expression + NonAggregate, D: Expression + NonAggregate, E: Expression + NonAggregate, F: Expression + NonAggregate, G: Expression + NonAggregate, H: Expression + NonAggregate, I: Expression + NonAggregate, J: Expression + NonAggregate, K: Expression + NonAggregate, L: Expression + NonAggregate, M: Expression + NonAggregate, N: Expression + NonAggregate, O: Expression + NonAggregate, P: Expression + NonAggregate> Expression for (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P) type SqlType = (<A as Expression>::SqlType, <B as Expression>::SqlType, <C as Expression>::SqlType, <D as Expression>::SqlType, <E as Expression>::SqlType, <F as Expression>::SqlType, <G as Expression>::SqlType, <H as Expression>::SqlType, <I as Expression>::SqlType, <J as Expression>::SqlType, <K as Expression>::SqlType, <L as Expression>::SqlType, <M as Expression>::SqlType, <N as Expression>::SqlType, <O as Expression>::SqlType, <P as Expression>::SqlType);`