TableToModel

Struct TableToModel 

Source
pub struct TableToModel { /* private fields */ }
Expand description

Expression template for converting table rows into model records.

Contains one expression per model field. Each expression references table columns and produces the corresponding model field value. During lowering, these expressions construct SELECT clauses that return model-shaped data.

§Examples

use toasty_core::schema::mapping::TableToModel;

let t2m: &TableToModel = &model_mapping.table_to_model;
// Get the full returning expression for SELECT
let returning = t2m.lower_returning_model();

Implementations§

Source§

impl TableToModel

Source

pub fn new(expr: ExprRecord) -> TableToModel

Creates a new TableToModel from the given expression record.

§Examples
use toasty_core::schema::mapping::TableToModel;
use toasty_core::stmt::ExprRecord;

let record = ExprRecord::default();
let t2m = TableToModel::new(record);
Source

pub fn lower_returning_model(&self) -> Expr

Returns the complete expression record for use in a RETURNING clause.

§Examples
let expr = table_to_model.lower_returning_model();
// Use `expr` in a SELECT or RETURNING clause
Source

pub fn lower_expr_reference(&self, nesting: usize, index: usize) -> Expr

Returns the expression for a single field reference.

§Arguments
  • nesting - The scope nesting level. Non-zero when the reference appears in a subquery relative to the table source.
  • index - The field index within the model.
§Examples
// Get the expression for field 0 at the top-level scope
let expr = table_to_model.lower_expr_reference(0, 0);

Trait Implementations§

Source§

impl Clone for TableToModel

Source§

fn clone(&self) -> TableToModel

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TableToModel

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for TableToModel

Source§

fn default() -> TableToModel

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.