Rows

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 basic query functionality like joining tables and filters.

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, j: impl Joinable<'inner, Typ = T>, ) -> Expr<'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”)

The expression that is returned refers to the joined table.

Source

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

Filter rows based on an expression.

Source

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

Filter out rows where this expression is None.

Returns a new expression 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>
where S: Unpin,

§

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