Trait elephantry::Model[][src]

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
    ) -> Result<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[src]

Loading content...

Provided methods

fn default_projection() -> Projection[src]

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[src]

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[src]

Create a new entity.

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

Loading content...

Implementors

Loading content...