TypedInput

Struct TypedInput 

pub struct TypedInput<'a, I, T = Schema> { /* private fields */ }
Expand description

An Input wrapper that validates resolved argument types against expected types at resolution time.

TypedInput delegates resolution to an inner Input and then checks that the resolved expression’s inferred type is a subtype of the expected argument type from tys.

Implementations§

§

impl<'a, I, T> TypedInput<'a, I, T>

pub fn new( cx: ExprContext<'a, T>, tys: &'a [Type], input: I, ) -> TypedInput<'a, I, T>

Creates a new TypedInput with the given expression context, expected argument types, and inner input.

Trait Implementations§

§

impl<I, T> Input for TypedInput<'_, I, T>
where I: Input, T: Resolve,

§

fn resolve_arg( &mut self, expr_arg: &ExprArg, projection: &Projection, ) -> Option<Expr>

Resolves an argument expression at the given projection. Read more
§

fn resolve_ref( &mut self, expr_reference: &ExprReference, projection: &Projection, ) -> Option<Expr>

Resolves a reference expression at the given projection. Read more

Auto Trait Implementations§

§

impl<'a, I, T> Freeze for TypedInput<'a, I, T>
where I: Freeze,

§

impl<'a, I, T> RefUnwindSafe for TypedInput<'a, I, T>

§

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

§

impl<'a, I, T> Sync for TypedInput<'a, I, T>
where I: Sync, T: Sync,

§

impl<'a, I, T> Unpin for TypedInput<'a, I, T>
where I: Unpin,

§

impl<'a, I, T> UnwindSafe for TypedInput<'a, I, T>

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> 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, 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.