pub struct ResolvedApplicationExpression<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> { /* private fields */ }Expand description
Phase 8 (orphan-closure) — content-addressed wrapper for ApplicationExpression<H>.
Caches the resolver’s lookup at construction. Accessors return
the cached record’s fields when present, falling back to the
Null{Class}<H> absent sentinels when the resolver returned
None. Object accessors always return absent sentinels — use
the resolve_{m} chain methods to descend into sub-records.
Implementations§
Source§impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ResolvedApplicationExpression<'r, R, H>
impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ResolvedApplicationExpression<'r, R, H>
Sourcepub fn new(handle: ApplicationExpressionHandle<H>, resolver: &'r R) -> Self
pub fn new(handle: ApplicationExpressionHandle<H>, resolver: &'r R) -> Self
Construct the wrapper, eagerly resolving the handle.
Sourcepub const fn handle(&self) -> ApplicationExpressionHandle<H>
pub const fn handle(&self) -> ApplicationExpressionHandle<H>
The handle this wrapper resolves.
Sourcepub const fn record(&self) -> Option<&ApplicationExpressionRecord<H>>
pub const fn record(&self) -> Option<&ApplicationExpressionRecord<H>>
The cached record, or None when the resolver returned None.
Source§impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ResolvedApplicationExpression<'r, R, H>
impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ResolvedApplicationExpression<'r, R, H>
Sourcepub fn resolve_expression_operator<'r2, R2: OperationResolver<H>>(
&self,
r: &'r2 R2,
) -> Option<ResolvedOperation<'r2, R2, H>>
pub fn resolve_expression_operator<'r2, R2: OperationResolver<H>>( &self, r: &'r2 R2, ) -> Option<ResolvedOperation<'r2, R2, H>>
Promote the expression_operator handle on the cached record into a
resolved wrapper, given a resolver for the range class.
Returns None if no record was resolved at construction.
Trait Implementations§
Source§impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ApplicationExpression<H> for ResolvedApplicationExpression<'r, R, H>
impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> ApplicationExpression<H> for ResolvedApplicationExpression<'r, R, H>
Source§type Operation = NullOperation<H>
type Operation = NullOperation<H>
Associated type for
Operation.Source§type TermExpression = NullTermExpression<H>
type TermExpression = NullTermExpression<H>
Associated type for
TermExpression.Source§fn expression_operator(&self) -> &Self::Operation
fn expression_operator(&self) -> &Self::Operation
The operator in an application expression (e.g., op:add, op:neg).
Source§fn arguments(&self) -> &[Self::TermExpression]
fn arguments(&self) -> &[Self::TermExpression]
The argument list of an application expression. Non-functional: an application may take multiple arguments.
impl<'r, R: ApplicationExpressionResolver<H>, H: HostTypes> TermExpression<H> for ResolvedApplicationExpression<'r, R, H>
Auto Trait Implementations§
impl<'r, R, H> Freeze for ResolvedApplicationExpression<'r, R, H>
impl<'r, R, H> RefUnwindSafe for ResolvedApplicationExpression<'r, R, H>where
R: RefUnwindSafe,
H: RefUnwindSafe,
impl<'r, R, H> Send for ResolvedApplicationExpression<'r, R, H>
impl<'r, R, H> Sync for ResolvedApplicationExpression<'r, R, H>
impl<'r, R, H> Unpin for ResolvedApplicationExpression<'r, R, H>where
H: Unpin,
impl<'r, R, H> UnsafeUnpin for ResolvedApplicationExpression<'r, R, H>
impl<'r, R, H> UnwindSafe for ResolvedApplicationExpression<'r, R, H>where
R: RefUnwindSafe,
H: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more