freecell/game_state/
debug_display.rs1use std::fmt::{Debug, Display, Formatter, Result};
2
3use super::GameState;
4
5impl Display for GameState {
6 fn fmt(&self, f: &mut Formatter) -> Result {
7 writeln!(f, "{}\n", self.foundations)?;
9
10 for (i, cascade) in self.cascades.iter().enumerate() {
12 let cascade_cards: Vec<String> = cascade.iter().map(
13 |card| card.to_string()
14 ).collect();
15 writeln!(f, "Cascade {}: {}", i + 1, cascade_cards.join(", "))?;
16 }
17 writeln!(f)?;
18
19 let freecell_cards: Vec<String> = self.freecells.iter().map(
21 |card| card.to_string()
22 ).collect();
23 writeln!(f, "Freecells: {}", freecell_cards.join(", "))
24 }
25}
26
27impl Debug for GameState {
30 fn fmt(&self, f: &mut Formatter) -> Result {
31 writeln!(f, "{:?}\n", self.foundations)?;
33
34 for cascade in &self.cascades {
36 write!(f, "Cascade:")?;
37 for card in cascade {
38 write!(f, " {:?}", card)?;
39 }
40 writeln!(f)?;
41 }
42 writeln!(f)?;
43
44 write!(f, "Freecells:")?;
46 for card in &self.freecells {
47 write!(f, " {:?}", card)?;
48 }
49 writeln!(f)
50 }
51}