pub enum ConstraintError<Var, Value> {
InconsistentConstraint(Var, Value, Value),
UnconstrainedVar(Var),
NoConstraintSatisfied(Vec<ConstraintError<Var, Value>>),
ImpossibleCaseIdentified(ImpossibleConstraint),
}Expand description
Errors that can occur during constraint solving. These represent various ways that constraint satisfaction can fail.
Variants§
InconsistentConstraint(Var, Value, Value)
A variable was assigned two different, incompatible values
UnconstrainedVar(Var)
A variable in the constraint range was not assigned any value
NoConstraintSatisfied(Vec<ConstraintError<Var, Value>>)
None of the alternative constraints in an XOR constraint could be satisfied
ImpossibleCaseIdentified(ImpossibleConstraint)
An impossible constraint was encountered during solving
Implementations§
Source§impl ConstraintError<AtomTerm, ArcSort>
impl ConstraintError<AtomTerm, ArcSort>
Sourcepub fn to_type_error(&self) -> TypeError
pub fn to_type_error(&self) -> TypeError
Converts a ConstraintError produced by type checking into a type error.
Trait Implementations§
Auto Trait Implementations§
impl<Var, Value> Freeze for ConstraintError<Var, Value>
impl<Var, Value> !RefUnwindSafe for ConstraintError<Var, Value>
impl<Var, Value> Send for ConstraintError<Var, Value>
impl<Var, Value> Sync for ConstraintError<Var, Value>
impl<Var, Value> Unpin for ConstraintError<Var, Value>
impl<Var, Value> !UnwindSafe for ConstraintError<Var, Value>
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> 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 more