use crate::solver::{wall_stats, Solver, IteratorSolver}; use crate::structs::StoneWall; pub struct GpuSolver { n: u32, h: u32, w: u32, permutations: Vec>, masks: Vec, } impl GpuSolver { fn solve_to_vec(&mut self) -> Vec { 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; fn solve(mut self) -> Self::IntoIter { self.solve_to_vec().into_iter() } }