pub mod rectangular; pub trait CalanderPuzzle { type Placement; // returns a Vec that associates with each piece index, // a Vec of possible placements of that piece fn placements(&self, allow_flips: bool) -> Vec>; fn solve(&self) { } }