Make OPoint call `T::fmt` to respect formatting modifiers (#1336)

This commit is contained in:
Kurt Lawrence 2023-12-21 08:42:54 +10:00 committed by GitHub
parent 1e0cb7bc09
commit 6dce471297
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 2 deletions

View File

@ -511,10 +511,11 @@ where
let mut it = self.coords.iter();
write!(f, "{}", *it.next().unwrap())?;
<T as fmt::Display>::fmt(it.next().unwrap(), f)?;
for comp in it {
write!(f, ", {}", *comp)?;
write!(f, ", ")?;
<T as fmt::Display>::fmt(comp, f)?;
}
write!(f, "}}")

View File

@ -92,3 +92,11 @@ fn to_homogeneous() {
assert_eq!(a.to_homogeneous(), expected);
}
#[test]
fn display_fmt_respects_modifiers() {
let p = Point3::new(1.23, 3.45, 5.67);
assert_eq!(&format!("{p}"), "{1.23, 3.45, 5.67}");
assert_eq!(&format!("{p:.1}"), "{1.2, 3.5, 5.7}");
assert_eq!(&format!("{p:.0}"), "{1, 3, 6}");
}