ExprContext

Struct ExprContext 

Source
pub struct ExprContext<'a, T = Schema> { /* private fields */ }

Implementations§

Source§

impl<'a, T> ExprContext<'a, T>

Source

pub fn schema(&self) -> &'a T

Source

pub fn target(&self) -> ExprTarget<'a>

Source

pub fn target_at(&self, nesting: usize) -> &ExprTarget<'a>

Return the target at a specific nesting

Source§

impl<'a> ExprContext<'a, ()>

Source

pub fn new_free() -> ExprContext<'a, ()>

Source§

impl<'a, T: Resolve> ExprContext<'a, T>

Source

pub fn new(schema: &'a T) -> ExprContext<'a, T>

Source

pub fn new_with_target( schema: &'a T, target: impl IntoExprTarget<'a, T>, ) -> ExprContext<'a, T>

Source

pub fn scope<'child>( &'child self, target: impl IntoExprTarget<'child, T>, ) -> ExprContext<'child, T>

Source

pub fn resolve_expr_reference( &self, expr_reference: &ExprReference, ) -> ResolvedRef<'a>

Resolves an ExprReference::Column reference to the actual database Column it represents.

Given an ExprReference::Column (which contains table/column indices and nesting info), returns the Column struct containing the column’s name, type, constraints, and other metadata.

Handles:

  • Nested query scopes (walking up parent contexts based on nesting level)
  • Different statement targets (INSERT, UPDATE, SELECT with joins, etc.)
  • Table references in multi-table operations (using the table index)

Used by SQL serialization to get column names, query planning to match index columns, and key extraction to identify column IDs.

Source

pub fn infer_stmt_ty(&self, stmt: &Statement, args: &[Type]) -> Type

Source

pub fn infer_expr_ty(&self, expr: &Expr, args: &[Type]) -> Type

Source

pub fn infer_expr_reference_ty(&self, expr_reference: &ExprReference) -> Type

Source§

impl<'a> ExprContext<'a, Schema>

Source

pub fn target_as_model(&self) -> Option<&'a ModelRoot>

Source

pub fn expr_ref_column(&self, column_id: impl Into<ColumnId>) -> ExprReference

Trait Implementations§

Source§

impl<'a, T> Clone for ExprContext<'a, T>

Source§

fn clone(&self) -> Self

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<'a, T: Debug> Debug for ExprContext<'a, T>

Source§

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

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

impl<'a, T> Copy for ExprContext<'a, T>

Auto Trait Implementations§

§

impl<'a, T> Freeze for ExprContext<'a, T>

§

impl<'a, T> RefUnwindSafe for ExprContext<'a, T>
where T: RefUnwindSafe,

§

impl<'a, T> Send for ExprContext<'a, T>
where T: Sync,

§

impl<'a, T> Sync for ExprContext<'a, T>
where T: Sync,

§

impl<'a, T> Unpin for ExprContext<'a, T>

§

impl<'a, T> UnwindSafe for ExprContext<'a, T>
where T: RefUnwindSafe,

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> Same for T

Source§

type Output = T

Should always be Self
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V