pub enum RelationResult {
Refined,
Satisfied,
Defer,
Failed(&'static str),
}Expand description
Outcome of running a relation against the solver’s current type
nodes. The solver’s worklist treats each variant differently:
Refined requeues dependents, Satisfied removes the relation,
Defer parks it for later, Failed aborts the solve.
Variants§
Refined
Made progress narrowing one or more type variables. Requeue any relations sharing those types.
Satisfied
Constraint fully satisfied. Remove from the worklist.
Defer
Insufficient information today. Come back when something else refines the participating types.
Failed(&'static str)
Hard contradiction. The solver propagates the diagnostic back as a build error.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for RelationResult
impl RefUnwindSafe for RelationResult
impl Send for RelationResult
impl Sync for RelationResult
impl Unpin for RelationResult
impl UnsafeUnpin for RelationResult
impl UnwindSafe for RelationResult
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