ModelRoot

Struct ModelRoot 

Source
pub struct ModelRoot {
    pub id: ModelId,
    pub name: Name,
    pub fields: Vec<Field>,
    pub primary_key: PrimaryKey,
    pub table_name: Option<String>,
    pub indices: Vec<Index>,
}
Expand description

A root model backed by its own database table.

Root models have a primary key, may define indices, and are the only model kind that can be the target of relations. They are the main entities users interact with through Toasty’s query API.

§Examples

let root = model.as_root_unwrap();
let pk_fields: Vec<_> = root.primary_key_fields().collect();

Fields§

§id: ModelId

Uniquely identifies this model within the schema.

§name: Name

The model’s name.

§fields: Vec<Field>

All fields defined on this model.

§primary_key: PrimaryKey

The primary key definition. Root models always have a primary key.

§table_name: Option<String>

Optional explicit table name. When None, a name is derived from the model name.

§indices: Vec<Index>

Secondary indices defined on this model.

Implementations§

Source§

impl ModelRoot

Source

pub fn find_by_id(&self, input: impl Input) -> Query

Builds a SELECT query that filters by this model’s primary key using the supplied input to resolve argument values.

Source

pub fn primary_key_fields(&self) -> impl ExactSizeIterator<Item = &Field>

Iterate over the fields used for the model’s primary key.

Source

pub fn field_by_name(&self, name: &str) -> Option<&Field>

Looks up a field by its application-level name.

Returns None if no field with that name exists on this model.

Trait Implementations§

Source§

impl Clone for ModelRoot

Source§

fn clone(&self) -> ModelRoot

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 ModelRoot

Source§

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

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

impl From<&ModelRoot> for ModelId

Source§

fn from(value: &ModelRoot) -> Self

Converts to this type from the input type.
Source§

impl From<&ModelRoot> for Source

Source§

fn from(value: &ModelRoot) -> Self

Converts to this type from the input type.
Source§

impl<'a, T> IntoExprTarget<'a, T> for &'a ModelRoot

Source§

fn into_expr_target(self, _schema: &'a T) -> ExprTarget<'a>

Converts self into an ExprTarget using the provided schema.

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.