pub enum SolveError {
TooManyVariables {
found: usize,
max: usize,
},
UnknownVariable(VarId),
UnrecognizedForm(Expr),
}Expand description
Why the solver could not simplify an expression.
Simplifying an MBA is best-effort: a caller that hands over an expression the solver cannot handle should be able to keep its original expression and carry on, not die. Every variant is a “leave this one alone” signal rather than a reason to abort the program.
Variants§
TooManyVariables
The linear MBA still held more variables (found) than the solver’s
internal limit (max) after reduction / PCT expansion, so its truth
table is too large to build.
Fields
UnknownVariable(VarId)
A variable produced during reduction had no entry in the restore map. Indicates an inconsistent variable map rather than a hard input.
UnrecognizedForm(Expr)
A solved linear MBA came back in a shape the polynomial reconstruction does not model.
Trait Implementations§
Source§impl Clone for SolveError
impl Clone for SolveError
Source§impl Debug for SolveError
impl Debug for SolveError
Source§impl Display for SolveError
impl Display for SolveError
impl Eq for SolveError
Source§impl Error for SolveError
impl Error for SolveError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for SolveError
impl PartialEq for SolveError
impl StructuralPartialEq for SolveError
Auto Trait Implementations§
impl Freeze for SolveError
impl RefUnwindSafe for SolveError
impl Send for SolveError
impl Sync for SolveError
impl Unpin for SolveError
impl UnsafeUnpin for SolveError
impl UnwindSafe for SolveError
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.