summaryrefslogtreecommitdiff
path: root/src/solver.rs
diff options
context:
space:
mode:
authorDennis Kobert <dennis@kobert.dev>2020-01-05 22:39:18 +0100
committerDennis Kobert <dennis@kobert.dev>2020-01-05 22:39:18 +0100
commitd343b5e10ec2dbd526decbfa984168cf2509f48c (patch)
tree6d62761a15a93d70ba68214cdb4f6f64a2e96071 /src/solver.rs
parentc583ee4faa552962594f7d5bf9b57bf62b6db5c0 (diff)
parent492045e538cf806bb49631dfbbaabbd8b566147e (diff)
Merge branch 'master' of kobert:/var/repos/babel
Diffstat (limited to 'src/solver.rs')
-rwxr-xr-xsrc/solver.rs12
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;
+}