diff options
Diffstat (limited to 'src/solvers/gpusolver.rs')
-rw-r--r-- | src/solvers/gpusolver.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/solvers/gpusolver.rs b/src/solvers/gpusolver.rs new file mode 100644 index 0000000..4c58251 --- /dev/null +++ b/src/solvers/gpusolver.rs @@ -0,0 +1,41 @@ +use crate::solver::{wall_stats, Solver, IteratorSolver}; +use crate::structs::StoneWall; + +pub struct GpuSolver { + n: u32, h: u32, w: u32, + permutations: Vec<Vec<u32>>, + masks: Vec<u64>, +} + +impl GpuSolver { + fn solve_to_vec(&mut self) -> Vec<StoneWall> { + vec![] + } +} + +impl Solver for GpuSolver { + fn new(n: u32) -> Self { + let (h, w) = wall_stats(n); + Self { + n, h, w, + permutations: vec![], + masks: vec![] + } + } + fn n(&self) -> u32 { + self.n + } + fn h(&self) -> u32 { + self.h + } + fn w(&self) -> u32 { + self.w + } +} + +impl IteratorSolver for GpuSolver { + type IntoIter = std::vec::IntoIter<StoneWall>; + fn solve(mut self) -> Self::IntoIter { + self.solve_to_vec().into_iter() + } +} |