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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
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.type PrimaryKey = <S as Table>::PrimaryKey
type AllColumns = <S as Table>::AllColumns
Source§impl<S, TSM> Table for Tablesample<S, TSM>where
S: Table + Clone + AsQuery,
TSM: TablesampleMethod,
<S as Table>::PrimaryKey: SelectableExpression<Tablesample<S, TSM>>,
<S as Table>::AllColumns: SelectableExpression<Tablesample<S, TSM>>,
<S as QuerySource>::DefaultSelection: ValidGrouping<()> + SelectableExpression<Tablesample<S, TSM>>,
Available on crate feature postgres_backend
only.
impl<S, TSM> Table for Tablesample<S, TSM>where
S: Table + Clone + AsQuery,
TSM: TablesampleMethod,
<S as Table>::PrimaryKey: SelectableExpression<Tablesample<S, TSM>>,
<S as Table>::AllColumns: SelectableExpression<Tablesample<S, TSM>>,
<S as QuerySource>::DefaultSelection: ValidGrouping<()> + SelectableExpression<Tablesample<S, TSM>>,
Available on crate feature
postgres_backend
only.