pub trait ToSQL<'a, V: SQLParam> {
// Required method
fn to_sql(&self) -> SQL<'a, V>;
// Provided method
fn into_sql(self) -> SQL<'a, V>
where Self: Sized { ... }
}Expand description
Something that renders as a SQL fragment for the value type V.
Columns, tables, expressions, query builders and plain Rust values all
implement it. Rust values (i64, &str, Option<T>, …) render as
bound parameters, None renders as NULL, and lists (Vec<T>, arrays,
slices) render as comma-separated items. 'a lets the fragment borrow
its inputs instead of copying them.
§Examples
Rendering a custom type:
use drizzle_core::{SQL, ToSQL};
struct Now;
impl<'a> ToSQL<'a, Value> for Now {
fn to_sql(&self) -> SQL<'a, Value> {
SQL::raw("CURRENT_TIMESTAMP")
}
}
assert_eq!(Now.to_sql().sql(), "CURRENT_TIMESTAMP");Required Methods§
Provided Methods§
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: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>, T13: ToSQL<'a, V>, T14: ToSQL<'a, V>, T15: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>, T13: ToSQL<'a, V>, T14: ToSQL<'a, V>, T15: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>, T13: ToSQL<'a, V>, T14: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>, T13: ToSQL<'a, V>, T14: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>, T13: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>, T13: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>, T12: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>, T11: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>, T10: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>, T9: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>, T8: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>, T7: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>, T6: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>, T5: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>, T4: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3, T4)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>, T3: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2, T3)
Source§impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2)
impl<'a, V: SQLParam, T0: ToSQL<'a, V>, T1: ToSQL<'a, V>, T2: ToSQL<'a, V>> ToSQL<'a, V> for (T0, T1, T2)
Implementors§
impl<'a, V, C> ToSQL<'a, V> for Excluded<C>
impl<'a, V, E, Name> ToSQL<'a, V> for NamedExpr<E, Name>
impl<'a, V, E> ToSQL<'a, V> for AliasedExpr<E>
impl<'a, V, Name, Output> ToSQL<'a, V> for DerivedField<Name, Output>
impl<'a, V, Name, Projection, Query> ToSQL<'a, V> for Derived<'a, V, Name, Projection, Query>
impl<'a, V, Table, Query> ToSQL<'a, V> for CTEView<'a, V, Table, Query>
impl<'a, V: SQLParam + 'a, T: DataType, N: Nullability> ToSQL<'a, V> for TypedPlaceholder<T, N>
impl<'a, V: SQLParam + 'a> ToSQL<'a, V> for ColumnRef
impl<'a, V: SQLParam + 'a> ToSQL<'a, V> for Join
impl<'a, V: SQLParam + 'a> ToSQL<'a, V> for OrderBy
Renders ASC or DESC.