Trait mem_query::col::Col[][src]

pub trait Col: 'static + Clone + From<Self::Inner> + Into<Self::Inner> + Deref<Target = Self::Inner> + DerefMut + AsRef<Self::Inner> + AsMut<Self::Inner> + Borrow<Self::Inner> + BorrowMut<Self::Inner> + ColProxy<For = Self> + LispId + Record<Cols = HCons<Self, HNil>> + Eval<Result = Self> {
    type Inner;
    fn wrap_ref(x: &Self::Inner) -> &Self;
fn wrap_mut(x: &mut Self::Inner) -> &mut Self; fn inner_ref(&self) -> &Self::Inner { ... }
fn rename<New: Col<Inner = Self::Inner>>(self) -> New { ... }
fn rename_ref<New: Col<Inner = Self::Inner>>(&self) -> &New { ... }
fn rename_mut<New: Col<Inner = Self::Inner>>(&mut self) -> &mut New { ... } }
Expand description

A trait to represent a relation field

It is intended to only be implemented via the col! macro, which will define a new column type and implement all of the required traits.

Associated Types

Required methods

fn wrap_ref(x: &Self::Inner) -> &Self[src]

Safely transmutes a shared reference to the inner datatype into a shared column reference

fn wrap_mut(x: &mut Self::Inner) -> &mut Self[src]

Safely transmutes an exclusive reference to the inner datatype into an exclusive column reference

Provided methods

fn inner_ref(&self) -> &Self::Inner[src]

fn rename<New: Col<Inner = Self::Inner>>(self) -> New[src]

Tags the inner variable with a different column wrapper

fn rename_ref<New: Col<Inner = Self::Inner>>(&self) -> &New[src]

In-place renaming of a shared reference to this column as a different column name.

fn rename_mut<New: Col<Inner = Self::Inner>>(&mut self) -> &mut New[src]

In-place renaming of an exclusive reference to this column as a different column name.

Implementors