// Eryn Wells use super::Piece; #[derive(Default)] pub enum PieceDisplayStyle { #[default] Unicode, ASCII, LongForm, } pub struct PieceDisplay { pub(super) piece: Piece, pub(super) style: PieceDisplayStyle, } impl std::fmt::Display for PieceDisplay { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self.style { PieceDisplayStyle::Unicode => write!(f, "{}", self.piece.to_unicode()), PieceDisplayStyle::ASCII => write!(f, "{}", self.piece.to_ascii()), PieceDisplayStyle::LongForm => { write!(f, "{} {}", self.piece.color.name(), self.piece.shape.name()) } } } }