pub mod hsc;
pub type Breakdown = Vec<SubstepSolution>;
pub mod builder;
pub use shared::substep;
mod shared;
use crate::cube::Move;
pub trait Substep {
fn new() -> Self;
fn after_moves(&self, moves: &[Move]) -> Self;
fn solved(&self) -> bool;
fn comment() -> &'static str;
}
pub struct SubstepSolution {
pub comment: &'static str,
pub solution: Vec<Move>,
}
#[derive(Debug)]
pub enum BreakdownError {}
pub trait Method {
fn breakdown(&self, scramble: &[Move], solution: &[Move]) -> Result<Breakdown, BreakdownError>;
}