rust_query

Struct Rows

Source
pub struct Rows<'inner, S> { /* private fields */ }
Expand description

Rows keeps track of all rows in the current query.

This is the base type for other query types like crate::args::Aggregate and crate::args::Query. It contains most query functionality like joining tables and doing sub-queries.

Rows mutability is only about which rows are included. Adding new columns does not require mutating Rows.

Implementations§

Source§

impl<'inner, S> Rows<'inner, S>

Source

pub fn join<T: Table<Schema = S>>(&mut self) -> Column<'inner, S, T>

Join a table, this is like a super simple Iterator::flat_map but for queries.

After this operation Rows has rows for the combinations of each original row with each row of the table. (Also called the “Carthesian product”)

For convenience there is also Table::join.

Source

pub fn filter(&mut self, prop: impl IntoColumn<'inner, S, Typ = bool>)

Filter rows based on a column.

Source

pub fn filter_some<Typ>( &mut self, val: impl IntoColumn<'inner, S, Typ = Option<Typ>>, ) -> Column<'inner, S, Typ>

Filter out rows where this column is None.

Returns a new column with the unwrapped type.

Auto Trait Implementations§

§

impl<'inner, S> !Freeze for Rows<'inner, S>

§

impl<'inner, S> !RefUnwindSafe for Rows<'inner, S>

§

impl<'inner, S> !Send for Rows<'inner, S>

§

impl<'inner, S> !Sync for Rows<'inner, S>

§

impl<'inner, S> Unpin for Rows<'inner, S>

§

impl<'inner, S> !UnwindSafe for Rows<'inner, S>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V