Trait diesel::types::ToSql
[−]
[src]
pub trait ToSql<A, DB: Backend + HasSqlType<A>>: Debug { fn to_sql<W: Write>(
&self,
out: &mut ToSqlOutput<W, DB>
) -> Result<IsNull, Box<Error + Send + Sync>>; }
Serializes a single value to be sent to the database.
The output is sent as a bind parameter, and the data must be written in the expected format for the given backend.
When possible, implementations of this trait should prefer using an existing
implementation, rather than writing to out
directly. (For example, if you
are implementing this for an enum, which is represented as an integer in the
database, you should use i32::to_sql(x, out)
instead of writing to out
yourself.
Backend specific details
- For PostgreSQL, the bytes will be sent using the binary protocol, not text.
- For SQLite, all implementations should be written in terms of an existing
ToSql
implementation. - For MySQL, the expected bytes will depend on the return value of
type_metadata
for the given SQL type. SeeMysqlType
for details. - For third party backends, consult that backend's documentation.
Required Methods
fn to_sql<W: Write>(
&self,
out: &mut ToSqlOutput<W, DB>
) -> Result<IsNull, Box<Error + Send + Sync>>
&self,
out: &mut ToSqlOutput<W, DB>
) -> Result<IsNull, Box<Error + Send + Sync>>
See the trait documentation.
Implementations on Foreign Types
impl<DB> ToSql<Nullable<Date>, DB> for NaiveDate where
DB: Backend + HasSqlType<Date>,
NaiveDate: ToSql<Date, DB>,
[src]
DB: Backend + HasSqlType<Date>,
NaiveDate: ToSql<Date, DB>,
impl<DB> ToSql<Nullable<Time>, DB> for NaiveTime where
DB: Backend + HasSqlType<Time>,
NaiveTime: ToSql<Time, DB>,
[src]
DB: Backend + HasSqlType<Time>,
NaiveTime: ToSql<Time, DB>,
impl<DB> ToSql<Nullable<Timestamp>, DB> for NaiveDateTime where
DB: Backend + HasSqlType<Timestamp>,
NaiveDateTime: ToSql<Timestamp, DB>,
[src]
DB: Backend + HasSqlType<Timestamp>,
NaiveDateTime: ToSql<Timestamp, DB>,
impl<DB: Backend> ToSql<Float, DB> for f32
[src]
impl<DB: Backend> ToSql<Double, DB> for f64
[src]
impl<DB: Backend> ToSql<SmallInt, DB> for i16
[src]
impl<DB: Backend> ToSql<Integer, DB> for i32
[src]
impl<DB: Backend> ToSql<BigInt, DB> for i64
[src]
impl<T, ST, DB> ToSql<Nullable<ST>, DB> for Option<T> where
T: ToSql<ST, DB>,
DB: Backend + HasSqlType<ST>,
ST: NotNull,
[src]
T: ToSql<ST, DB>,
DB: Backend + HasSqlType<ST>,
ST: NotNull,
impl<DB> ToSql<Nullable<Bool>, DB> for bool where
DB: Backend + HasSqlType<Bool>,
bool: ToSql<Bool, DB>,
[src]
DB: Backend + HasSqlType<Bool>,
bool: ToSql<Bool, DB>,
impl<DB> ToSql<Nullable<SmallInt>, DB> for i16 where
DB: Backend + HasSqlType<SmallInt>,
i16: ToSql<SmallInt, DB>,
[src]
DB: Backend + HasSqlType<SmallInt>,
i16: ToSql<SmallInt, DB>,
impl<DB> ToSql<Nullable<Integer>, DB> for i32 where
DB: Backend + HasSqlType<Integer>,
i32: ToSql<Integer, DB>,
[src]
DB: Backend + HasSqlType<Integer>,
i32: ToSql<Integer, DB>,
impl<DB> ToSql<Nullable<BigInt>, DB> for i64 where
DB: Backend + HasSqlType<BigInt>,
i64: ToSql<BigInt, DB>,
[src]
DB: Backend + HasSqlType<BigInt>,
i64: ToSql<BigInt, DB>,
impl<DB> ToSql<Nullable<Float>, DB> for f32 where
DB: Backend + HasSqlType<Float>,
f32: ToSql<Float, DB>,
[src]
DB: Backend + HasSqlType<Float>,
f32: ToSql<Float, DB>,
impl<DB> ToSql<Nullable<Double>, DB> for f64 where
DB: Backend + HasSqlType<Double>,
f64: ToSql<Double, DB>,
[src]
DB: Backend + HasSqlType<Double>,
f64: ToSql<Double, DB>,
impl<DB> ToSql<Nullable<Text>, DB> for String where
DB: Backend + HasSqlType<Text>,
String: ToSql<Text, DB>,
[src]
DB: Backend + HasSqlType<Text>,
String: ToSql<Text, DB>,
impl<DB> ToSql<Nullable<Binary>, DB> for Vec<u8> where
DB: Backend + HasSqlType<Binary>,
Vec<u8>: ToSql<Binary, DB>,
[src]
DB: Backend + HasSqlType<Binary>,
Vec<u8>: ToSql<Binary, DB>,
impl<DB> ToSql<Nullable<Text>, DB> for str where
DB: Backend + HasSqlType<Text>,
str: ToSql<Text, DB>,
[src]
DB: Backend + HasSqlType<Text>,
str: ToSql<Text, DB>,
impl<DB> ToSql<Nullable<Binary>, DB> for [u8] where
DB: Backend + HasSqlType<Binary>,
[u8]: ToSql<Binary, DB>,
[src]
DB: Backend + HasSqlType<Binary>,
[u8]: ToSql<Binary, DB>,
impl<DB: Backend> ToSql<Text, DB> for str
[src]
impl<DB> ToSql<Text, DB> for String where
DB: Backend,
str: ToSql<Text, DB>,
[src]
DB: Backend,
str: ToSql<Text, DB>,
impl<DB> ToSql<Binary, DB> for Vec<u8> where
DB: Backend,
[u8]: ToSql<Binary, DB>,
[src]
DB: Backend,
[u8]: ToSql<Binary, DB>,
impl<DB: Backend> ToSql<Binary, DB> for [u8]
[src]
impl<'a, T: ?Sized, ST, DB> ToSql<ST, DB> for Cow<'a, T> where
T: 'a + ToOwned + ToSql<ST, DB>,
DB: Backend + HasSqlType<ST>,
T::Owned: ToSql<ST, DB>,
[src]
T: 'a + ToOwned + ToSql<ST, DB>,
DB: Backend + HasSqlType<ST>,
T::Owned: ToSql<ST, DB>,
impl<DB> ToSql<Nullable<Numeric>, DB> for BigDecimal where
DB: Backend + HasSqlType<Numeric>,
BigDecimal: ToSql<Numeric, DB>,
[src]
DB: Backend + HasSqlType<Numeric>,
BigDecimal: ToSql<Numeric, DB>,
impl<'a, A, T: ?Sized, DB> ToSql<A, DB> for &'a T where
DB: Backend + HasSqlType<A>,
T: ToSql<A, DB>,
[src]
DB: Backend + HasSqlType<A>,
T: ToSql<A, DB>,
impl ToSql<Datetime, Mysql> for MYSQL_TIME
[src]
impl<DB> ToSql<Nullable<Datetime>, DB> for NaiveDateTime where
DB: Backend + HasSqlType<Datetime>,
NaiveDateTime: ToSql<Datetime, DB>,
[src]
DB: Backend + HasSqlType<Datetime>,
NaiveDateTime: ToSql<Datetime, DB>,
impl ToSql<Timestamp, Mysql> for MYSQL_TIME
[src]
impl ToSql<Time, Mysql> for MYSQL_TIME
[src]
impl ToSql<Date, Mysql> for MYSQL_TIME
[src]
impl ToSql<Datetime, Mysql> for NaiveDateTime
[src]
impl ToSql<Timestamp, Mysql> for NaiveDateTime
[src]
impl ToSql<Time, Mysql> for NaiveTime
[src]
impl ToSql<Date, Mysql> for NaiveDate
[src]
impl ToSql<Numeric, Mysql> for BigDecimal
[src]
impl<DB> ToSql<Nullable<Tinyint>, DB> for i8 where
DB: Backend + HasSqlType<Tinyint>,
i8: ToSql<Tinyint, DB>,
[src]
DB: Backend + HasSqlType<Tinyint>,
i8: ToSql<Tinyint, DB>,
impl ToSql<Tinyint, Mysql> for i8
[src]
impl ToSql<Bool, Mysql> for bool
[src]
impl<ST, T> ToSql<Array<ST>, Pg> for [T] where
Pg: HasSqlType<ST>,
T: ToSql<ST, Pg>,
[src]
Pg: HasSqlType<ST>,
T: ToSql<ST, Pg>,
impl<ST, T> ToSql<Nullable<Array<ST>>, Pg> for [T] where
Pg: HasSqlType<ST>,
[T]: ToSql<Array<ST>, Pg>,
[src]
Pg: HasSqlType<ST>,
[T]: ToSql<Array<ST>, Pg>,
impl<ST, T> ToSql<Array<ST>, Pg> for Vec<T> where
Pg: HasSqlType<ST>,
[T]: ToSql<Array<ST>, Pg>,
T: Debug,
[src]
Pg: HasSqlType<ST>,
[T]: ToSql<Array<ST>, Pg>,
T: Debug,
impl<ST, T> ToSql<Nullable<Array<ST>>, Pg> for Vec<T> where
Pg: HasSqlType<ST>,
Vec<T>: ToSql<Array<ST>, Pg>,
[src]
Pg: HasSqlType<ST>,
Vec<T>: ToSql<Array<ST>, Pg>,
impl<ST, T> ToSql<Range<ST>, Pg> for (Bound<T>, Bound<T>) where
Pg: HasSqlType<ST> + HasSqlType<Range<ST>>,
T: ToSql<ST, Pg>,
[src]
Pg: HasSqlType<ST> + HasSqlType<Range<ST>>,
T: ToSql<ST, Pg>,
impl<ST, T> ToSql<Nullable<Range<ST>>, Pg> for (Bound<T>, Bound<T>) where
Pg: HasSqlType<Range<ST>>,
(Bound<T>, Bound<T>): ToSql<Range<ST>, Pg>,
[src]
Pg: HasSqlType<Range<ST>>,
(Bound<T>, Bound<T>): ToSql<Range<ST>, Pg>,
impl<DB> ToSql<Nullable<Timestamp>, DB> for SystemTime where
DB: Backend + HasSqlType<Timestamp>,
SystemTime: ToSql<Timestamp, DB>,
[src]
DB: Backend + HasSqlType<Timestamp>,
SystemTime: ToSql<Timestamp, DB>,
impl ToSql<Timestamp, Pg> for SystemTime
[src]
impl<DB> ToSql<Nullable<Timestamptz>, DB> for NaiveDateTime where
DB: Backend + HasSqlType<Timestamptz>,
NaiveDateTime: ToSql<Timestamptz, DB>,
[src]
DB: Backend + HasSqlType<Timestamptz>,
NaiveDateTime: ToSql<Timestamptz, DB>,
impl<DB> ToSql<Nullable<Timestamptz>, DB> for DateTime<Utc> where
DB: Backend + HasSqlType<Timestamptz>,
DateTime<Utc>: ToSql<Timestamptz, DB>,
[src]
DB: Backend + HasSqlType<Timestamptz>,
DateTime<Utc>: ToSql<Timestamptz, DB>,
impl<DB> ToSql<Nullable<Timestamptz>, DB> for DateTime<FixedOffset> where
DB: Backend + HasSqlType<Timestamptz>,
DateTime<FixedOffset>: ToSql<Timestamptz, DB>,
[src]
DB: Backend + HasSqlType<Timestamptz>,
DateTime<FixedOffset>: ToSql<Timestamptz, DB>,
impl<DB> ToSql<Nullable<Timestamptz>, DB> for DateTime<Local> where
DB: Backend + HasSqlType<Timestamptz>,
DateTime<Local>: ToSql<Timestamptz, DB>,
[src]
DB: Backend + HasSqlType<Timestamptz>,
DateTime<Local>: ToSql<Timestamptz, DB>,
impl ToSql<Timestamp, Pg> for NaiveDateTime
[src]
impl ToSql<Timestamptz, Pg> for NaiveDateTime
[src]
impl<TZ: TimeZone> ToSql<Timestamptz, Pg> for DateTime<TZ>
[src]
impl ToSql<Time, Pg> for NaiveTime
[src]
impl ToSql<Date, Pg> for NaiveDate
[src]
impl<DB> ToSql<Nullable<Timestamp>, DB> for Timespec where
DB: Backend + HasSqlType<Timestamp>,
Timespec: ToSql<Timestamp, DB>,
[src]
DB: Backend + HasSqlType<Timestamp>,
Timespec: ToSql<Timestamp, DB>,
impl ToSql<Timestamp, Pg> for Timespec
[src]
impl<DB> ToSql<Nullable<MacAddr>, DB> for [u8; 6] where
DB: Backend + HasSqlType<MacAddr>,
[u8; 6]: ToSql<MacAddr, DB>,
[src]
DB: Backend + HasSqlType<MacAddr>,
[u8; 6]: ToSql<MacAddr, DB>,
impl<DB> ToSql<Nullable<Inet>, DB> for IpNetwork where
DB: Backend + HasSqlType<Inet>,
IpNetwork: ToSql<Inet, DB>,
[src]
DB: Backend + HasSqlType<Inet>,
IpNetwork: ToSql<Inet, DB>,
impl<DB> ToSql<Nullable<Cidr>, DB> for IpNetwork where
DB: Backend + HasSqlType<Cidr>,
IpNetwork: ToSql<Cidr, DB>,
[src]
DB: Backend + HasSqlType<Cidr>,
IpNetwork: ToSql<Cidr, DB>,
impl ToSql<MacAddr, Pg> for [u8; 6]
[src]
impl ToSql<Inet, Pg> for IpNetwork
[src]
impl ToSql<Cidr, Pg> for IpNetwork
[src]
impl<DB> ToSql<Nullable<Oid>, DB> for u32 where
DB: Backend + HasSqlType<Oid>,
u32: ToSql<Oid, DB>,
[src]
DB: Backend + HasSqlType<Oid>,
u32: ToSql<Oid, DB>,
impl ToSql<Oid, Pg> for u32
[src]
impl ToSql<Numeric, Pg> for BigDecimal
[src]
impl ToSql<Bool, Pg> for bool
[src]
impl<DB> ToSql<Nullable<Uuid>, DB> for Uuid where
DB: Backend + HasSqlType<Uuid>,
Uuid: ToSql<Uuid, DB>,
[src]
DB: Backend + HasSqlType<Uuid>,
Uuid: ToSql<Uuid, DB>,
impl ToSql<Uuid, Pg> for Uuid
[src]
impl<DB> ToSql<Nullable<Json>, DB> for Value where
DB: Backend + HasSqlType<Json>,
Value: ToSql<Json, DB>,
[src]
DB: Backend + HasSqlType<Json>,
Value: ToSql<Json, DB>,
impl<DB> ToSql<Nullable<Jsonb>, DB> for Value where
DB: Backend + HasSqlType<Jsonb>,
Value: ToSql<Jsonb, DB>,
[src]
DB: Backend + HasSqlType<Jsonb>,
Value: ToSql<Jsonb, DB>,
impl ToSql<Json, Pg> for Value
[src]
impl ToSql<Jsonb, Pg> for Value
[src]
impl ToSql<Date, Sqlite> for NaiveDate
[src]
impl ToSql<Time, Sqlite> for NaiveTime
[src]
impl ToSql<Timestamp, Sqlite> for NaiveDateTime
[src]
impl<DB> ToSql<Nullable<Date>, DB> for String where
DB: Backend + HasSqlType<Date>,
String: ToSql<Date, DB>,
[src]
DB: Backend + HasSqlType<Date>,
String: ToSql<Date, DB>,
impl<DB> ToSql<Nullable<Date>, DB> for str where
DB: Backend + HasSqlType<Date>,
str: ToSql<Date, DB>,
[src]
DB: Backend + HasSqlType<Date>,
str: ToSql<Date, DB>,
impl<DB> ToSql<Nullable<Time>, DB> for String where
DB: Backend + HasSqlType<Time>,
String: ToSql<Time, DB>,
[src]
DB: Backend + HasSqlType<Time>,
String: ToSql<Time, DB>,
impl<DB> ToSql<Nullable<Time>, DB> for str where
DB: Backend + HasSqlType<Time>,
str: ToSql<Time, DB>,
[src]
DB: Backend + HasSqlType<Time>,
str: ToSql<Time, DB>,
impl<DB> ToSql<Nullable<Timestamp>, DB> for String where
DB: Backend + HasSqlType<Timestamp>,
String: ToSql<Timestamp, DB>,
[src]
DB: Backend + HasSqlType<Timestamp>,
String: ToSql<Timestamp, DB>,
impl<DB> ToSql<Nullable<Timestamp>, DB> for str where
DB: Backend + HasSqlType<Timestamp>,
str: ToSql<Timestamp, DB>,
[src]
DB: Backend + HasSqlType<Timestamp>,
str: ToSql<Timestamp, DB>,
impl ToSql<Date, Sqlite> for str
[src]
impl ToSql<Date, Sqlite> for String
[src]
impl ToSql<Time, Sqlite> for str
[src]
impl ToSql<Time, Sqlite> for String
[src]
impl ToSql<Timestamp, Sqlite> for str
[src]
impl ToSql<Timestamp, Sqlite> for String
[src]
impl ToSql<Bool, Sqlite> for bool
[src]
Implementors
impl<DB> ToSql<Nullable<Date>, DB> for PgDate where
DB: Backend + HasSqlType<Date>,
PgDate: ToSql<Date, DB>,impl<DB> ToSql<Nullable<Time>, DB> for PgTime where
DB: Backend + HasSqlType<Time>,
PgTime: ToSql<Time, DB>,impl<DB> ToSql<Nullable<Timestamp>, DB> for PgTimestamp where
DB: Backend + HasSqlType<Timestamp>,
PgTimestamp: ToSql<Timestamp, DB>,impl<DB> ToSql<Nullable<Timestamptz>, DB> for PgTimestamp where
DB: Backend + HasSqlType<Timestamptz>,
PgTimestamp: ToSql<Timestamptz, DB>,impl<DB> ToSql<Nullable<Interval>, DB> for PgInterval where
DB: Backend + HasSqlType<Interval>,
PgInterval: ToSql<Interval, DB>,impl ToSql<Timestamp, Pg> for PgTimestamp
impl ToSql<Timestamptz, Pg> for PgTimestamp
impl ToSql<Date, Pg> for PgDate
impl ToSql<Time, Pg> for PgTime
impl ToSql<Interval, Pg> for PgInterval
impl ToSql<Numeric, Pg> for PgNumeric
impl<DB> ToSql<Nullable<Numeric>, DB> for PgNumeric where
DB: Backend + HasSqlType<Numeric>,
PgNumeric: ToSql<Numeric, DB>,impl<DB> ToSql<Nullable<Money>, DB> for PgMoney where
DB: Backend + HasSqlType<Money>,
PgMoney: ToSql<Money, DB>,impl ToSql<Money, Pg> for PgMoney