[][src]Trait elephantry::Model

pub trait Model<'a> {
    type Entity: Entity;
    type Structure: Structure;
    fn new(connection: &'a Connection) -> Self;

    fn default_projection() -> Projection { ... }
fn create_projection() -> Projection { ... }
fn create_entity(tuple: &Tuple<'_>) -> Self::Entity { ... }
fn primary_key(entity: &Self::Entity) -> HashMap<&'static str, &dyn ToSql> { ... } }

Impl this trait to create a link between an entity and a structure.

Associated Types

Loading content...

Required methods

fn new(connection: &'a Connection) -> Self

Loading content...

Provided methods

fn default_projection() -> Projection

This method creates a projection based on the structure definition of the underlying relation.

This method can be used where a projection that sticks to table definition is needed like recursive CTEs. For normal projections, use create_projection instead.

fn create_projection() -> Projection

This is a helper to create a new projection according to the current structure. Overriding this method will change projection for all models.

fn create_entity(tuple: &Tuple<'_>) -> Self::Entity

Create a new entity.

fn primary_key(entity: &Self::Entity) -> HashMap<&'static str, &dyn ToSql>

Loading content...

Implementors

Loading content...