Enum sudoku_variants::solver::Solution[][src]

pub enum Solution {
    Impossible,
    Unique(SudokuGrid),
    Ambiguous,
}

An enumeration of the different ways a Sudoku can be solveable. Note that this may be relative to the solver, since an imperfect solver may be unable to continue at some point, yielding Solution::Ambiguous, where the Sudoku is actually uniquely solveable or impossible.

Variants

Impossible

Indicates that the Sudoku is not solveable at all.

Unique(SudokuGrid)

Indicates that the Sudoku has a unique solution, which is wrapped in this instance.

Ambiguous

Indicates that the Sudoku has multiple solutions or, at least, that the solver was unable to find a unique one or prove it is impossible.

Implementations

impl Solution[src]

pub fn union(self, other: Solution) -> Solution[src]

Computes the union of two solutions. This is defined as follows:

  • If one solution is Solution::Impossible, the other one is returned.
  • If one solution is Solution::Ambiguous then the result is also ambiguous
  • If both solutions are Solution::Unique with solution grids g1 and g2, then the result is Solution::Unique(g1) if g1 == g2 and Solution::Ambiguous otherwise.

Trait Implementations

impl Clone for Solution[src]

impl Debug for Solution[src]

impl Eq for Solution[src]

impl PartialEq<Solution> for Solution[src]

impl StructuralEq for Solution[src]

impl StructuralPartialEq for Solution[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,