diff options
Diffstat (limited to 'src/solver.rs')
-rwxr-xr-x | src/solver.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/solver.rs b/src/solver.rs index 809ddb4..db4e732 100755 --- a/src/solver.rs +++ b/src/solver.rs @@ -8,10 +8,16 @@ pub fn wall_stats(n: u32) -> (u32, u32) { pub trait Solver { fn new(n: u32) -> Self; - fn solve(&mut self) -> StoneWall; fn n(&self) -> u32; - fn h(&self) -> u32; - fn w(&self) -> u32; } + +pub trait FirstSolver { + fn solve(self) -> StoneWall; +} + +pub trait IteratorSolver: Solver { + type IntoIter: Iterator<Item=StoneWall>; + fn solve(self) -> Self::IntoIter; +} |