Trait diesel::expression::AsExpression [] [src]

pub trait AsExpression<T> {
    type Expression: Expression<SqlType = T>;
    fn as_expression(self) -> Self::Expression;
}

Converts a type to its representation for use in Diesel's query builder.

This trait is used directly. Apps should typically use IntoSql instead.

Implementations of this trait will generally do one of 3 things:

  • Return self for types which are already parts of Diesel's query builder

  • Perform some implicit coercion (for example, allowing now to be used as both Timestamp and Timestamptz.

  • Indicate that the type has data which will be sent separately from the query. This is generally referred as a "bind parameter". Types which implement ToSql will generally implement AsExpression this way.

Deriving

This trait can be automatically derived for any type which implements ToSql. The type must be annotated with #[sql_type = "SomeType"]. If that annotation appears multiple times, implementations will be generated for each one of them.

This will generate the following impls:

  • impl AsExpression<SqlType> for YourType
  • impl AsExpression<Nullable<SqlType>> for YourType
  • impl AsExpression<SqlType> for &'a YourType
  • impl AsExpression<Nullable<SqlType>> for &'a YourType
  • impl AsExpression<SqlType> for &'a &'b YourType
  • impl AsExpression<Nullable<SqlType>> for &'a &'b YourType

If your type is unsized, you can specify this by adding the annotation #[diesel(not_sized)]. This will skip the impls for non-reference types.

Associated Types

The expression being returned

Required Methods

Perform the conversion

Implementations on Foreign Types

impl<'a, 'b, ST, T> AsExpression<Array<ST>> for &'a [T]
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Nullable<Array<ST>>> for &'a [T]
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Array<ST>> for &'a &'b [T]
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Nullable<Array<ST>>> for &'a &'b [T]
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Array<ST>> for Vec<T>
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Nullable<Array<ST>>> for Vec<T>
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Array<ST>> for &'a Vec<T>
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Nullable<Array<ST>>> for &'a Vec<T>
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Array<ST>> for &'a &'b Vec<T>
[src]

[src]

impl<'a, 'b, ST, T> AsExpression<Nullable<Array<ST>>> for &'a &'b Vec<T>
[src]

[src]

impl<ST, T> AsExpression<Range<ST>> for (Bound<T>, Bound<T>)
[src]

[src]

impl<'a, ST, T> AsExpression<Range<ST>> for &'a (Bound<T>, Bound<T>)
[src]

[src]

impl<ST, T> AsExpression<Nullable<Range<ST>>> for (Bound<T>, Bound<T>)
[src]

[src]

impl<'a, ST, T> AsExpression<Nullable<Range<ST>>> for &'a (Bound<T>, Bound<T>)
[src]

[src]

impl<'expr> AsExpression<Timestamp> for &'expr Timespec
[src]

[src]

impl<'expr> AsExpression<Nullable<Timestamp>> for &'expr Timespec
[src]

[src]

impl<'expr2, 'expr> AsExpression<Timestamp> for &'expr2 &'expr Timespec
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Timestamp>> for &'expr2 &'expr Timespec
[src]

[src]

impl AsExpression<Timestamp> for Timespec
[src]

[src]

impl AsExpression<Nullable<Timestamp>> for Timespec
[src]

[src]

impl<'expr> AsExpression<MacAddr> for &'expr [u8; 6]
[src]

[src]

impl<'expr> AsExpression<Nullable<MacAddr>> for &'expr [u8; 6]
[src]

[src]

impl<'expr2, 'expr> AsExpression<MacAddr> for &'expr2 &'expr [u8; 6]
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<MacAddr>> for &'expr2 &'expr [u8; 6]
[src]

[src]

impl AsExpression<MacAddr> for [u8; 6]
[src]

[src]

impl AsExpression<Nullable<MacAddr>> for [u8; 6]
[src]

[src]

impl<'expr> AsExpression<Inet> for &'expr IpNetwork
[src]

[src]

impl<'expr> AsExpression<Nullable<Inet>> for &'expr IpNetwork
[src]

[src]

impl<'expr2, 'expr> AsExpression<Inet> for &'expr2 &'expr IpNetwork
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Inet>> for &'expr2 &'expr IpNetwork
[src]

[src]

impl AsExpression<Inet> for IpNetwork
[src]

[src]

impl AsExpression<Nullable<Inet>> for IpNetwork
[src]

[src]

impl<'expr> AsExpression<Cidr> for &'expr IpNetwork
[src]

[src]

impl<'expr> AsExpression<Nullable<Cidr>> for &'expr IpNetwork
[src]

[src]

impl<'expr2, 'expr> AsExpression<Cidr> for &'expr2 &'expr IpNetwork
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Cidr>> for &'expr2 &'expr IpNetwork
[src]

[src]

impl AsExpression<Cidr> for IpNetwork
[src]

[src]

impl AsExpression<Nullable<Cidr>> for IpNetwork
[src]

[src]

impl<'expr> AsExpression<Uuid> for &'expr Uuid
[src]

[src]

impl<'expr> AsExpression<Nullable<Uuid>> for &'expr Uuid
[src]

[src]

impl<'expr2, 'expr> AsExpression<Uuid> for &'expr2 &'expr Uuid
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Uuid>> for &'expr2 &'expr Uuid
[src]

[src]

impl AsExpression<Uuid> for Uuid
[src]

[src]

impl AsExpression<Nullable<Uuid>> for Uuid
[src]

[src]

impl<'expr> AsExpression<Json> for &'expr Value
[src]

[src]

impl<'expr> AsExpression<Nullable<Json>> for &'expr Value
[src]

[src]

impl<'expr2, 'expr> AsExpression<Json> for &'expr2 &'expr Value
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Json>> for &'expr2 &'expr Value
[src]

[src]

impl AsExpression<Json> for Value
[src]

[src]

impl AsExpression<Nullable<Json>> for Value
[src]

[src]

impl<'expr> AsExpression<Jsonb> for &'expr Value
[src]

[src]

impl<'expr> AsExpression<Nullable<Jsonb>> for &'expr Value
[src]

[src]

impl<'expr2, 'expr> AsExpression<Jsonb> for &'expr2 &'expr Value
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Jsonb>> for &'expr2 &'expr Value
[src]

[src]

impl AsExpression<Jsonb> for Value
[src]

[src]

impl AsExpression<Nullable<Jsonb>> for Value
[src]

[src]

impl<'expr> AsExpression<Timestamp> for &'expr SystemTime
[src]

[src]

impl<'expr> AsExpression<Nullable<Timestamp>> for &'expr SystemTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Timestamp> for &'expr2 &'expr SystemTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Timestamp>> for &'expr2 &'expr SystemTime
[src]

[src]

impl AsExpression<Timestamp> for SystemTime
[src]

[src]

impl AsExpression<Nullable<Timestamp>> for SystemTime
[src]

[src]

impl<'expr> AsExpression<Date> for &'expr NaiveDate
[src]

[src]

impl<'expr> AsExpression<Nullable<Date>> for &'expr NaiveDate
[src]

[src]

impl<'expr2, 'expr> AsExpression<Date> for &'expr2 &'expr NaiveDate
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Date>> for &'expr2 &'expr NaiveDate
[src]

[src]

impl AsExpression<Date> for NaiveDate
[src]

[src]

impl AsExpression<Nullable<Date>> for NaiveDate
[src]

[src]

impl<'expr> AsExpression<Time> for &'expr NaiveTime
[src]

[src]

impl<'expr> AsExpression<Nullable<Time>> for &'expr NaiveTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Time> for &'expr2 &'expr NaiveTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Time>> for &'expr2 &'expr NaiveTime
[src]

[src]

impl AsExpression<Time> for NaiveTime
[src]

[src]

impl AsExpression<Nullable<Time>> for NaiveTime
[src]

[src]

impl<'expr> AsExpression<Timestamp> for &'expr NaiveDateTime
[src]

[src]

impl<'expr> AsExpression<Nullable<Timestamp>> for &'expr NaiveDateTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Timestamp> for &'expr2 &'expr NaiveDateTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Timestamp>> for &'expr2 &'expr NaiveDateTime
[src]

[src]

impl AsExpression<Timestamp> for NaiveDateTime
[src]

[src]

impl AsExpression<Nullable<Timestamp>> for NaiveDateTime
[src]

[src]

impl<'expr> AsExpression<Timestamptz> for &'expr NaiveDateTime
[src]

[src]

impl<'expr> AsExpression<Nullable<Timestamptz>> for &'expr NaiveDateTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Timestamptz> for &'expr2 &'expr NaiveDateTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Timestamptz>> for &'expr2 &'expr NaiveDateTime
[src]

[src]

impl AsExpression<Timestamptz> for NaiveDateTime
[src]

[src]

impl AsExpression<Nullable<Timestamptz>> for NaiveDateTime
[src]

[src]

impl<'expr> AsExpression<Datetime> for &'expr NaiveDateTime
[src]

[src]

impl<'expr> AsExpression<Nullable<Datetime>> for &'expr NaiveDateTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Datetime> for &'expr2 &'expr NaiveDateTime
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Datetime>> for &'expr2 &'expr NaiveDateTime
[src]

[src]

impl AsExpression<Datetime> for NaiveDateTime
[src]

[src]

impl AsExpression<Nullable<Datetime>> for NaiveDateTime
[src]

[src]

impl<'expr, Tz: TimeZone> AsExpression<Timestamptz> for &'expr DateTime<Tz>
[src]

[src]

impl<'expr, Tz: TimeZone> AsExpression<Nullable<Timestamptz>> for &'expr DateTime<Tz>
[src]

[src]

impl<'expr2, 'expr, Tz: TimeZone> AsExpression<Timestamptz> for &'expr2 &'expr DateTime<Tz>
[src]

[src]

impl<'expr2, 'expr, Tz: TimeZone> AsExpression<Nullable<Timestamptz>> for &'expr2 &'expr DateTime<Tz>
[src]

[src]

impl<Tz: TimeZone> AsExpression<Timestamptz> for DateTime<Tz>
[src]

[src]

impl<Tz: TimeZone> AsExpression<Nullable<Timestamptz>> for DateTime<Tz>
[src]

[src]

impl<T, ST> AsExpression<Nullable<ST>> for Option<T> where
    ST: NotNull
[src]

[src]

impl<'a, T, ST> AsExpression<Nullable<ST>> for &'a Option<T> where
    ST: NotNull
[src]

[src]

impl<'expr> AsExpression<Bool> for &'expr bool
[src]

[src]

impl<'expr> AsExpression<Nullable<Bool>> for &'expr bool
[src]

[src]

impl<'expr2, 'expr> AsExpression<Bool> for &'expr2 &'expr bool
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Bool>> for &'expr2 &'expr bool
[src]

[src]

impl AsExpression<Bool> for bool
[src]

[src]

impl AsExpression<Nullable<Bool>> for bool
[src]

[src]

impl<'expr> AsExpression<Tinyint> for &'expr i8
[src]

[src]

impl<'expr> AsExpression<Nullable<Tinyint>> for &'expr i8
[src]

[src]

impl<'expr2, 'expr> AsExpression<Tinyint> for &'expr2 &'expr i8
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Tinyint>> for &'expr2 &'expr i8
[src]

[src]

impl AsExpression<Tinyint> for i8
[src]

[src]

impl AsExpression<Nullable<Tinyint>> for i8
[src]

[src]

impl<'expr> AsExpression<SmallInt> for &'expr i16
[src]

[src]

impl<'expr> AsExpression<Nullable<SmallInt>> for &'expr i16
[src]

[src]

impl<'expr2, 'expr> AsExpression<SmallInt> for &'expr2 &'expr i16
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<SmallInt>> for &'expr2 &'expr i16
[src]

[src]

impl AsExpression<SmallInt> for i16
[src]

[src]

impl AsExpression<Nullable<SmallInt>> for i16
[src]

[src]

impl<'expr> AsExpression<Integer> for &'expr i32
[src]

[src]

impl<'expr> AsExpression<Nullable<Integer>> for &'expr i32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Integer> for &'expr2 &'expr i32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Integer>> for &'expr2 &'expr i32
[src]

[src]

impl AsExpression<Integer> for i32
[src]

[src]

impl AsExpression<Nullable<Integer>> for i32
[src]

[src]

impl<'expr> AsExpression<BigInt> for &'expr i64
[src]

[src]

impl<'expr> AsExpression<Nullable<BigInt>> for &'expr i64
[src]

[src]

impl<'expr2, 'expr> AsExpression<BigInt> for &'expr2 &'expr i64
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<BigInt>> for &'expr2 &'expr i64
[src]

[src]

impl AsExpression<BigInt> for i64
[src]

[src]

impl AsExpression<Nullable<BigInt>> for i64
[src]

[src]

impl<'expr> AsExpression<Unsigned<SmallInt>> for &'expr u16
[src]

[src]

impl<'expr> AsExpression<Nullable<Unsigned<SmallInt>>> for &'expr u16
[src]

[src]

impl<'expr2, 'expr> AsExpression<Unsigned<SmallInt>> for &'expr2 &'expr u16
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Unsigned<SmallInt>>> for &'expr2 &'expr u16
[src]

[src]

impl AsExpression<Unsigned<SmallInt>> for u16
[src]

[src]

impl AsExpression<Nullable<Unsigned<SmallInt>>> for u16
[src]

[src]

impl<'expr> AsExpression<Unsigned<Integer>> for &'expr u32
[src]

[src]

impl<'expr> AsExpression<Nullable<Unsigned<Integer>>> for &'expr u32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Unsigned<Integer>> for &'expr2 &'expr u32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Unsigned<Integer>>> for &'expr2 &'expr u32
[src]

[src]

impl AsExpression<Unsigned<Integer>> for u32
[src]

[src]

impl AsExpression<Nullable<Unsigned<Integer>>> for u32
[src]

[src]

impl<'expr> AsExpression<Oid> for &'expr u32
[src]

[src]

impl<'expr> AsExpression<Nullable<Oid>> for &'expr u32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Oid> for &'expr2 &'expr u32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Oid>> for &'expr2 &'expr u32
[src]

[src]

impl AsExpression<Oid> for u32
[src]

[src]

impl AsExpression<Nullable<Oid>> for u32
[src]

[src]

impl<'expr> AsExpression<Unsigned<BigInt>> for &'expr u64
[src]

[src]

impl<'expr> AsExpression<Nullable<Unsigned<BigInt>>> for &'expr u64
[src]

[src]

impl<'expr2, 'expr> AsExpression<Unsigned<BigInt>> for &'expr2 &'expr u64
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Unsigned<BigInt>>> for &'expr2 &'expr u64
[src]

[src]

impl AsExpression<Unsigned<BigInt>> for u64
[src]

[src]

impl AsExpression<Nullable<Unsigned<BigInt>>> for u64
[src]

[src]

impl<'expr> AsExpression<Float> for &'expr f32
[src]

[src]

impl<'expr> AsExpression<Nullable<Float>> for &'expr f32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Float> for &'expr2 &'expr f32
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Float>> for &'expr2 &'expr f32
[src]

[src]

impl AsExpression<Float> for f32
[src]

[src]

impl AsExpression<Nullable<Float>> for f32
[src]

[src]

impl<'expr> AsExpression<Double> for &'expr f64
[src]

[src]

impl<'expr> AsExpression<Nullable<Double>> for &'expr f64
[src]

[src]

impl<'expr2, 'expr> AsExpression<Double> for &'expr2 &'expr f64
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Double>> for &'expr2 &'expr f64
[src]

[src]

impl AsExpression<Double> for f64
[src]

[src]

impl AsExpression<Nullable<Double>> for f64
[src]

[src]

impl<'expr> AsExpression<Text> for &'expr String
[src]

[src]

impl<'expr> AsExpression<Nullable<Text>> for &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Text> for &'expr2 &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Text>> for &'expr2 &'expr String
[src]

[src]

impl AsExpression<Text> for String
[src]

[src]

impl AsExpression<Nullable<Text>> for String
[src]

[src]

impl<'expr> AsExpression<Date> for &'expr String
[src]

[src]

impl<'expr> AsExpression<Nullable<Date>> for &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Date> for &'expr2 &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Date>> for &'expr2 &'expr String
[src]

[src]

impl AsExpression<Date> for String
[src]

[src]

impl AsExpression<Nullable<Date>> for String
[src]

[src]

impl<'expr> AsExpression<Time> for &'expr String
[src]

[src]

impl<'expr> AsExpression<Nullable<Time>> for &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Time> for &'expr2 &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Time>> for &'expr2 &'expr String
[src]

[src]

impl AsExpression<Time> for String
[src]

[src]

impl AsExpression<Nullable<Time>> for String
[src]

[src]

impl<'expr> AsExpression<Timestamp> for &'expr String
[src]

[src]

impl<'expr> AsExpression<Nullable<Timestamp>> for &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Timestamp> for &'expr2 &'expr String
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Timestamp>> for &'expr2 &'expr String
[src]

[src]

impl AsExpression<Timestamp> for String
[src]

[src]

impl AsExpression<Nullable<Timestamp>> for String
[src]

[src]

impl<'expr> AsExpression<Text> for &'expr str
[src]

[src]

impl<'expr> AsExpression<Nullable<Text>> for &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Text> for &'expr2 &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Text>> for &'expr2 &'expr str
[src]

[src]

impl<'expr> AsExpression<Date> for &'expr str
[src]

[src]

impl<'expr> AsExpression<Nullable<Date>> for &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Date> for &'expr2 &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Date>> for &'expr2 &'expr str
[src]

[src]

impl<'expr> AsExpression<Time> for &'expr str
[src]

[src]

impl<'expr> AsExpression<Nullable<Time>> for &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Time> for &'expr2 &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Time>> for &'expr2 &'expr str
[src]

[src]

impl<'expr> AsExpression<Timestamp> for &'expr str
[src]

[src]

impl<'expr> AsExpression<Nullable<Timestamp>> for &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Timestamp> for &'expr2 &'expr str
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Timestamp>> for &'expr2 &'expr str
[src]

[src]

impl<'expr> AsExpression<Binary> for &'expr Vec<u8>
[src]

[src]

impl<'expr> AsExpression<Nullable<Binary>> for &'expr Vec<u8>
[src]

[src]

impl<'expr2, 'expr> AsExpression<Binary> for &'expr2 &'expr Vec<u8>
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Binary>> for &'expr2 &'expr Vec<u8>
[src]

[src]

impl AsExpression<Binary> for Vec<u8>
[src]

[src]

impl AsExpression<Nullable<Binary>> for Vec<u8>
[src]

[src]

impl<'expr> AsExpression<Binary> for &'expr [u8]
[src]

[src]

impl<'expr> AsExpression<Nullable<Binary>> for &'expr [u8]
[src]

[src]

impl<'expr2, 'expr> AsExpression<Binary> for &'expr2 &'expr [u8]
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Binary>> for &'expr2 &'expr [u8]
[src]

[src]

impl<'a, T: ?Sized, ST> AsExpression<ST> for Cow<'a, T> where
    T: 'a + ToOwned,
    Bound<ST, Cow<'a, T>>: Expression<SqlType = ST>, 
[src]

[src]

impl<'a, 'b, T: ?Sized, ST> AsExpression<ST> for &'b Cow<'a, T> where
    T: 'a + ToOwned,
    Bound<ST, &'b T>: Expression<SqlType = ST>, 
[src]

[src]

impl<'expr> AsExpression<Numeric> for &'expr BigDecimal
[src]

[src]

impl<'expr> AsExpression<Nullable<Numeric>> for &'expr BigDecimal
[src]

[src]

impl<'expr2, 'expr> AsExpression<Numeric> for &'expr2 &'expr BigDecimal
[src]

[src]

impl<'expr2, 'expr> AsExpression<Nullable<Numeric>> for &'expr2 &'expr BigDecimal
[src]

[src]

impl AsExpression<Numeric> for BigDecimal
[src]

[src]

impl AsExpression<Nullable<Numeric>> for BigDecimal
[src]

[src]

Implementors