Trait mem_query::relation::Relation[][src]

pub trait Relation<'a>: RelationImpl + QueryOutput<'a> + SelfQuery<'a> + Sized {
    fn subjoin<F: Col>(self) -> SubordinateJoin<Self, F>
    where
        SubordinateJoin<Self, F>: Relation<'a>
, { ... }
fn join<Rel>(self, rel: Rel) -> PeerJoin<Self, Rel>
    where
        PeerJoin<Self, Rel>: Relation<'a>
, { ... }
fn where_eq<C: ColProxy>(self, c: C) -> FilterRel<Self, Exact<C>>
    where
        FilterRel<Self, Exact<C>>: Relation<'a>
, { ... }
fn project<H: Header>(self) -> ProjectedRel<Self, H>
    where
        ProjectedRel<Self, H>: Relation<'a>
, { ... }
fn iter_as<O: FromExternalRecord<'a>>(
        &'a self
    ) -> <IterAs<'a, Self, O> as IntoIterator>::IntoIter
    where
        IterAs<'a, Self, O>: IntoIterator
, { ... }
fn as_dyn(self) -> DynRel<Self>
    where
        DynRel<Self>: RelationImpl
, { ... }
fn truncate(&mut self) -> Result<(), <Self::Op as RevertableOp<Self>>::Err>
    where
        Self: Delete<HNil>
, { ... } }

Provided methods

fn subjoin<F: Col>(self) -> SubordinateJoin<Self, F> where
    SubordinateJoin<Self, F>: Relation<'a>, 
[src]

fn join<Rel>(self, rel: Rel) -> PeerJoin<Self, Rel> where
    PeerJoin<Self, Rel>: Relation<'a>, 
[src]

TODO: Maybe reverse the join order; key lookup always on right-hand side

fn where_eq<C: ColProxy>(self, c: C) -> FilterRel<Self, Exact<C>> where
    FilterRel<Self, Exact<C>>: Relation<'a>, 
[src]

fn project<H: Header>(self) -> ProjectedRel<Self, H> where
    ProjectedRel<Self, H>: Relation<'a>, 
[src]

fn iter_as<O: FromExternalRecord<'a>>(
    &'a self
) -> <IterAs<'a, Self, O> as IntoIterator>::IntoIter where
    IterAs<'a, Self, O>: IntoIterator
[src]

fn as_dyn(self) -> DynRel<Self> where
    DynRel<Self>: RelationImpl
[src]

fn truncate(&mut self) -> Result<(), <Self::Op as RevertableOp<Self>>::Err> where
    Self: Delete<HNil>, 
[src]

Implementors

impl<'a, T: RelationImpl + SelfQuery<'a>> Relation<'a> for T where
    T: RelationImpl + SelfQuery<'a>, 
[src]