pub trait ToSQL<'a, V>where
V: SQLParam,{
// Required method
fn to_sql(&self) -> SQL<'a, V>;
// Provided methods
fn into_sql(self) -> SQL<'a, V>
where Self: Sized { ... }
fn alias(&self, alias: &'static str) -> SQL<'a, V> { ... }
}Expand description
Trait for types that can be converted to SQL fragments.
The 'a lifetime ties any borrowed parameter values to the resulting SQL
fragment, allowing zero-copy SQL construction when inputs are already
borrowed.
Required Methods§
Provided Methods§
Sourcefn into_sql(self) -> SQL<'a, V>where
Self: Sized,
fn into_sql(self) -> SQL<'a, V>where
Self: Sized,
Consume self and return SQL without cloning.
Default delegates to to_sql() (which clones). Types that own their SQL
(like SQL and SQLExpr) override this to avoid the clone.
fn alias(&self, alias: &'static str) -> SQL<'a, V>
Implementations on Foreign Types§
Source§impl<'a, V, T0, T1, T2> ToSQL<'a, V> for (T0, T1, T2)
impl<'a, V, T0, T1, T2> ToSQL<'a, V> for (T0, T1, T2)
Source§impl<'a, V, T0, T1, T2, T3> ToSQL<'a, V> for (T0, T1, T2, T3)
impl<'a, V, T0, T1, T2, T3> ToSQL<'a, V> for (T0, T1, T2, T3)
Source§impl<'a, V, T0, T1, T2, T3, T4> ToSQL<'a, V> for (T0, T1, T2, T3, T4)
impl<'a, V, T0, T1, T2, T3, T4> ToSQL<'a, V> for (T0, T1, T2, T3, T4)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5)
impl<'a, V, T0, T1, T2, T3, T4, T5> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
Source§impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
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>,
impl<'a, V, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ToSQL<'a, V> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where
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>,
Implementors§
impl<'a> ToSQL<'a, SQLiteValue<'a>> for AutoVacuum
impl<'a> ToSQL<'a, SQLiteValue<'a>> for CacheSpill
impl<'a> ToSQL<'a, SQLiteValue<'a>> for Encoding
impl<'a> ToSQL<'a, SQLiteValue<'a>> for JournalMode
impl<'a> ToSQL<'a, SQLiteValue<'a>> for LockingMode
impl<'a> ToSQL<'a, SQLiteValue<'a>> for Pragma
impl<'a> ToSQL<'a, SQLiteValue<'a>> for SecureDelete
impl<'a> ToSQL<'a, SQLiteValue<'a>> for Synchronous
impl<'a> ToSQL<'a, SQLiteValue<'a>> for TempStore
impl<'a> ToSQL<'a, SQLiteValue<'a>> for WalCheckpointMode
impl<'a> ToSQL<'a, SQLiteValue<'a>> for WritableSchema
impl<'a> ToSQL<'a, SQLiteValue<'a>> for SQLiteValue<'a>
impl<'a, Schema, State, Table> ToSQL<'a, SQLiteValue<'a>> for QueryBuilder<'a, Schema, State, Table>
impl<'a, Table, Query> ToSQL<'a, SQLiteValue<'a>> for CTEView<'a, Table, Query>where
Query: ToSQL<'a, SQLiteValue<'a>>,
ToSQL implementation renders just the CTE name for use in FROM clauses. Unlike aliased tables (which render as “original” AS “alias”), CTEs should just render as their name since they’re already defined in the WITH clause.