kewb/
lib.rs

1//! A crate for manipulating and solving the 3x3 Rubik's cube with [Kociemba's two phase algorithm](http://kociemba.org/cube.htm).
2
3pub(crate) mod cube;
4pub(crate) mod two_phase;
5
6pub use cube::{cubie::CubieCube, facelet::Color, facelet::FaceCube, moves::Move};
7pub use two_phase::solver::{Solution, Solver};
8pub use two_phase::utils::DataTable;
9
10/// Module containing 3x3 cube constants.
11pub mod constants {
12    pub use crate::cube::constants::*;
13}
14
15/// Module containing table read and write operations.
16pub mod fs {
17    pub use crate::two_phase::fs::*;
18}
19
20/// Module for generating moves table.
21pub mod move_table {
22    pub use crate::two_phase::moves::*;
23}
24
25/// Module for generating pruning table.
26pub mod pruning_table {
27    pub use crate::two_phase::pruning::*;
28}
29
30/// Module for translating permutations and orientations into the two phase algorithm coordinate.
31pub mod index {
32    pub use crate::cube::index::*;
33}
34
35/// Module containing functions for generating states on the cubie level.
36pub mod generators {
37    pub use crate::cube::generators::*;
38}
39
40/// Module containing functions for scrambling the cube.
41pub mod scramble {
42    pub use crate::cube::scramble::*;
43}
44
45pub mod error;