diff --git a/core/src/score.rs b/core/src/score.rs index eee49f6..a7f24cd 100644 --- a/core/src/score.rs +++ b/core/src/score.rs @@ -1,6 +1,9 @@ // Eryn Wells -use std::ops::{Add, AddAssign, Mul, Sub, SubAssign}; +use std::{ + fmt, + ops::{Add, AddAssign, Mul, Neg, Sub, SubAssign}, +}; pub(crate) type ScoreInner = i32; @@ -69,3 +72,16 @@ impl From for Score { Score(value) } } + +impl fmt::Display for Score { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let value = self.0; + if *self == Self::MAX { + write!(f, "INF") + } else if *self == Self::MIN { + write!(f, "-INF") + } else { + write!(f, "{value}cp") + } + } +}