Skip to main content

SelectionPart

Trait SelectionPart 

Source
pub trait SelectionPart<Scope, Idx>: Sealed<Scope, Idx> {
    type Fields<Tail>;

    // Required method
    fn push_items(&self, out: &mut Vec<SelectItem>);
}
Expand description

One element of a selection list. A column or an expression contributes one field; All contributes a whole table’s worth. Fields<Tail> is what it puts in front of whatever the rest of the list contributes, so a list is assembled by nesting rather than by concatenating afterwards.

Required Associated Types§

Source

type Fields<Tail>

Required Methods§

Source

fn push_items(&self, out: &mut Vec<SelectItem>)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<C: ColumnKey, Scope, Idx> SelectionPart<Scope, Idx> for Column<C>
where Column<C>: RowField<Scope, Idx>,

Source§

type Fields<Tail> = RowCons<<Column<C> as RowKey>::Key, <Column<C> as RowField<Scope, Idx>>::Value, Tail>

Source§

impl<K, Inner, Scope, Idx> SelectionPart<Scope, Idx> for Labeled<K, Inner>
where Labeled<K, Inner>: RowField<Scope, Idx>,

Source§

type Fields<Tail> = RowCons<<Labeled<K, Inner> as RowKey>::Key, <Labeled<K, Inner> as RowField<Scope, Idx>>::Value, Tail>

Source§

impl<K, Req, S: SqlType, Scope, Idx> SelectionPart<Scope, Idx> for Keyed<K, Req, S>
where Keyed<K, Req, S>: RowField<Scope, Idx>,

Source§

type Fields<Tail> = RowCons<<Keyed<K, Req, S> as RowKey>::Key, <Keyed<K, Req, S> as RowField<Scope, Idx>>::Value, Tail>

Source§

impl<T: AllColumns, Scope, Idx> SelectionPart<Scope, Idx> for All<T>
where T::Columns: ColumnList<Scope, Idx>,

Source§

type Fields<Tail> = <<T as AllColumns>::Columns as ColumnList<Scope, Idx>>::Fields<Tail>