struct EvaluationResult<X: Cx> {
encountered_overflow: bool,
required_depth: usize,
heads: CycleHeads,
nested_goals: NestedGoals<X>,
result: X::Result,
}
Expand description
The final result of evaluating a goal.
We reset encountered_overflow
when reevaluating a goal,
but need to track whether we’ve hit the recursion limit at
all for correctness.
We’ve previously simply returned the final StackEntry
but this
made it easy to accidentally drop information from the previous
evaluation.
Fields§
§encountered_overflow: bool
§required_depth: usize
§heads: CycleHeads
§nested_goals: NestedGoals<X>
§result: X::Result
Implementations§
Source§impl<X: Cx> EvaluationResult<X>
impl<X: Cx> EvaluationResult<X>
fn finalize( final_entry: StackEntry<X>, encountered_overflow: bool, result: X::Result, ) -> EvaluationResult<X>
Trait Implementations§
Auto Trait Implementations§
impl<X> DynSend for EvaluationResult<X>
impl<X> DynSync for EvaluationResult<X>
impl<X> Freeze for EvaluationResult<X>
impl<X> RefUnwindSafe for EvaluationResult<X>
impl<X> Send for EvaluationResult<X>
impl<X> Sync for EvaluationResult<X>
impl<X> Unpin for EvaluationResult<X>
impl<X> UnwindSafe for EvaluationResult<X>
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
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
Source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.