pub enum SolveStatus {
Sat,
Unsat,
Unknown,
Optimal(u64),
}Expand description
Status of a solve operation.
Represents the outcome of a SAT/MaxSAT solver execution.
§Variants
Sat: Instance is satisfiableUnsat: Instance is unsatisfiableUnknown: Could not determine (timeout/resource limit)Optimal: Found optimal solution with given value (MaxSAT)
§Example
use xlog_solve::SolveStatus;
let status = SolveStatus::Sat;
assert!(status.is_satisfiable());
assert!(status.is_determined());
let optimal = SolveStatus::Optimal(42);
assert_eq!(optimal.optimal_value(), Some(42));Variants§
Sat
Instance is satisfiable.
A satisfying assignment exists and should be available in the proof.
Unsat
Instance is unsatisfiable.
No assignment can satisfy all clauses.
Unknown
Could not determine satisfiability.
The solver did not reach a definitive conclusion, typically due to:
- Timeout
- Memory limit
- Iteration limit
- Incomplete search (for approximate solvers)
Optimal(u64)
Found optimal solution with given value.
For MaxSAT problems, this indicates the optimal objective value (e.g., maximum number of satisfied clauses or weighted sum).
Implementations§
Source§impl SolveStatus
impl SolveStatus
Sourcepub fn is_satisfiable(&self) -> bool
pub fn is_satisfiable(&self) -> bool
Sourcepub fn is_unsatisfiable(&self) -> bool
pub fn is_unsatisfiable(&self) -> bool
Returns true if the status indicates unsatisfiability.
§Example
use xlog_solve::SolveStatus;
assert!(SolveStatus::Unsat.is_unsatisfiable());
assert!(!SolveStatus::Sat.is_unsatisfiable());Sourcepub fn is_determined(&self) -> bool
pub fn is_determined(&self) -> bool
Returns true if the solver reached a definitive conclusion.
Returns true for all variants except Unknown.
§Example
use xlog_solve::SolveStatus;
assert!(SolveStatus::Sat.is_determined());
assert!(SolveStatus::Unsat.is_determined());
assert!(SolveStatus::Optimal(5).is_determined());
assert!(!SolveStatus::Unknown.is_determined());Trait Implementations§
Source§impl Clone for SolveStatus
impl Clone for SolveStatus
Source§fn clone(&self) -> SolveStatus
fn clone(&self) -> SolveStatus
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SolveStatus
impl Debug for SolveStatus
Source§impl Default for SolveStatus
impl Default for SolveStatus
Source§fn default() -> SolveStatus
fn default() -> SolveStatus
Returns the “default value” for a type. Read more
Source§impl Hash for SolveStatus
impl Hash for SolveStatus
Source§impl PartialEq for SolveStatus
impl PartialEq for SolveStatus
impl Copy for SolveStatus
impl Eq for SolveStatus
impl StructuralPartialEq for SolveStatus
Auto Trait Implementations§
impl Freeze for SolveStatus
impl RefUnwindSafe for SolveStatus
impl Send for SolveStatus
impl Sync for SolveStatus
impl Unpin for SolveStatus
impl UnsafeUnpin for SolveStatus
impl UnwindSafe for SolveStatus
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,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more