pub trait Table: QuerySource + AsQuery + Sized {
type PrimaryKey: SelectableExpression<Self> + ValidGrouping<()>;
type AllColumns: SelectableExpression<Self> + ValidGrouping<()>;
// Required methods
fn primary_key(&self) -> Self::PrimaryKey;
fn all_columns() -> Self::AllColumns;
}
Expand description
A SQL database table. Types which implement this trait should have been
generated by the table!
macro.
Required Associated Types§
sourcetype PrimaryKey: SelectableExpression<Self> + ValidGrouping<()>
type PrimaryKey: SelectableExpression<Self> + ValidGrouping<()>
The type returned by primary_key
sourcetype AllColumns: SelectableExpression<Self> + ValidGrouping<()>
type AllColumns: SelectableExpression<Self> + ValidGrouping<()>
The type returned by all_columns
Required Methods§
sourcefn primary_key(&self) -> Self::PrimaryKey
fn primary_key(&self) -> Self::PrimaryKey
Returns the primary key of this table.
If the table has a composite primary key, this will be a tuple.
sourcefn all_columns() -> Self::AllColumns
fn all_columns() -> Self::AllColumns
Returns a tuple of all columns belonging to this table.
Implementors§
source§impl<S> Table for Only<S>where
S: Table + Clone + AsQuery,
<S as Table>::PrimaryKey: SelectableExpression<Only<S>>,
<S as Table>::AllColumns: SelectableExpression<Only<S>>,
<S as QuerySource>::DefaultSelection: ValidGrouping<()> + SelectableExpression<Only<S>>,
Available on crate feature postgres_backend
only.
impl<S> Table for Only<S>where S: Table + Clone + AsQuery, <S as Table>::PrimaryKey: SelectableExpression<Only<S>>, <S as Table>::AllColumns: SelectableExpression<Only<S>>, <S as QuerySource>::DefaultSelection: ValidGrouping<()> + SelectableExpression<Only<S>>,
Available on crate feature
postgres_backend
only.