pub trait IntoSelectTarget {
type Marker;
}Expand description
Something that can be passed to .select(...); picks the select marker.
The marker decides how the row type is inferred:
SelectStar: the table’s select model;SelectCols<C>: a tuple of the columns’ value types;SelectExpr: the caller names the row type;SelectAs<R>: theFromRowstructR.
Implemented for:
()->SelectStarSQL<'a, V>->SelectExprSQLExpr<'a, V, T, N, A, S>->SelectCols<(Self,)>- tuples
(A, B, ...)->SelectCols<(A, B, ...)> - columns and tables (generated by the table macros)
FromRowselectors (generated by theFromRowderives) ->SelectAs<R>
Required Associated Types§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl IntoSelectTarget for ()
select(()) → SelectStar — infer row type from the table.
impl IntoSelectTarget for ()
select(()) → SelectStar — infer row type from the table.
type Marker = SelectStar
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
Source§impl<T0, T1, T2, T3, T4, T5, T6, T7> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7)
impl<T0, T1, T2, T3, T4, T5, T6, T7> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6, T7)
Source§impl<T0, T1, T2, T3, T4, T5, T6> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6)
impl<T0, T1, T2, T3, T4, T5, T6> IntoSelectTarget for (T0, T1, T2, T3, T4, T5, T6)
Source§impl<T0, T1, T2, T3, T4, T5> IntoSelectTarget for (T0, T1, T2, T3, T4, T5)
impl<T0, T1, T2, T3, T4, T5> IntoSelectTarget for (T0, T1, T2, T3, T4, T5)
Source§impl<T0, T1, T2, T3, T4> IntoSelectTarget for (T0, T1, T2, T3, T4)
impl<T0, T1, T2, T3, T4> IntoSelectTarget for (T0, T1, T2, T3, T4)
Source§impl<T0, T1, T2, T3> IntoSelectTarget for (T0, T1, T2, T3)
impl<T0, T1, T2, T3> IntoSelectTarget for (T0, T1, T2, T3)
type Marker = SelectCols<(T0, T1, T2, T3)>
Source§impl<T0, T1, T2> IntoSelectTarget for (T0, T1, T2)
impl<T0, T1, T2> IntoSelectTarget for (T0, T1, T2)
type Marker = SelectCols<(T0, T1, T2)>
Source§impl<T0, T1> IntoSelectTarget for (T0, T1)
impl<T0, T1> IntoSelectTarget for (T0, T1)
type Marker = SelectCols<(T0, T1)>
Source§impl<T0> IntoSelectTarget for (T0,)
impl<T0> IntoSelectTarget for (T0,)
type Marker = SelectCols<(T0,)>
Source§impl<T: IntoSelectTarget + ?Sized> IntoSelectTarget for &T
impl<T: IntoSelectTarget + ?Sized> IntoSelectTarget for &T
type Marker = <T as IntoSelectTarget>::Marker
Implementors§
Source§impl<E, Name> IntoSelectTarget for NamedExpr<E, Name>where
E: ExprValueType,
impl<E, Name> IntoSelectTarget for NamedExpr<E, Name>where
E: ExprValueType,
type Marker = SelectCols<(NamedExpr<E, Name>,)>
Source§impl<E> IntoSelectTarget for AliasedExpr<E>where
E: ExprValueType,
impl<E> IntoSelectTarget for AliasedExpr<E>where
E: ExprValueType,
type Marker = SelectCols<(AliasedExpr<E>,)>
Source§impl<Name, Output> IntoSelectTarget for DerivedField<Name, Output>where
Name: Tag,
Output: ProjectionOutput + ExprValueType,
impl<Name, Output> IntoSelectTarget for DerivedField<Name, Output>where
Name: Tag,
Output: ProjectionOutput + ExprValueType,
type Marker = SelectCols<(DerivedField<Name, Output>,)>
Source§impl<V: SQLParam, T, N, A, S> IntoSelectTarget for SQLExpr<'_, V, T, N, A, S>
select(typed_expr) → SelectCols<(Expr,)> — single typed expression.
impl<V: SQLParam, T, N, A, S> IntoSelectTarget for SQLExpr<'_, V, T, N, A, S>
select(typed_expr) → SelectCols<(Expr,)> — single typed expression.
type Marker = SelectCols<(SQLExpr<'_, V, T, N, A, S>,)>
Source§impl<V: SQLParam> IntoSelectTarget for SQL<'_, V>
select(sql!(...)) → SelectExpr — user must specify row type.
impl<V: SQLParam> IntoSelectTarget for SQL<'_, V>
select(sql!(...)) → SelectExpr — user must specify row type.