pub struct PLLSolver<'a> {
pub cube: CubieCube,
/* private fields */
}Expand description
CrossSolver for solve CFOP’s PLL. MUST HAVE SOLVED CROSS & F2L & OLL!!
§Example
use rcuber::cubie::CubieCube;
use rcuber::moves::Formula;
use rcuber::solver::cfop::cross::CrossSolver;
use rcuber::solver::cfop::f2l::F2LSolver;
use rcuber::solver::cfop::oll::OLLSolver;
use rcuber::solver::cfop::pll::PLLSolver;
fn main() {
let cc = CubieCube::default();
let moves =Formula::scramble();
println!("Scramble: {:?}", moves);
let cc = cc.apply_formula(&moves);
let mut cross = CrossSolver{cube: cc};
assert!(!cross.is_solved());
let solution = cross.solve();
assert!(cross.is_solved());
println!("Cross Solution: {:?}", solution);
let mut f2l = F2LSolver{cube: cross.cube};
assert!(!f2l.is_solved());
let solution = f2l.solve();
assert!(f2l.is_solved());
println!("F2L Solution: {:?}", solution);
let mut oll = OLLSolver::new(f2l.cube);
let solution = oll.solve();
assert!(oll.is_solved());
println!("OLL Solution: {:?}", solution);
let mut pll = PLLSolver::new(oll.cube);
let solution = pll.solve();
assert!(pll.is_solved());
println!("PLL Solution: {:?}", solution);
}Fields§
§cube: CubieCubeImplementations§
Auto Trait Implementations§
impl<'a> Freeze for PLLSolver<'a>
impl<'a> RefUnwindSafe for PLLSolver<'a>
impl<'a> Send for PLLSolver<'a>
impl<'a> Sync for PLLSolver<'a>
impl<'a> Unpin for PLLSolver<'a>
impl<'a> UnsafeUnpin for PLLSolver<'a>
impl<'a> UnwindSafe for PLLSolver<'a>
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