1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-02 06:40:06 -04:00

Add a Display impl for Vec2, Pos2, and Rect (#4428)

These three types currently have a `Debug` implementation that only ever
prints one decimal point. Sometimes it is useful to see more of the
number, or otherwise have specific formatting.

Add `Display` implementations that pass the format specification to the
member `f32`s for an easier way to control what is shown when debugging.

This allows doing e.g. `ui.label(format!("{:.4}", rect * scale))` which
currently prints zeroes if scale is small.
This commit is contained in:
Trevor Gross
2024-04-29 08:22:34 -04:00
committed by GitHub
parent af39bd22ab
commit 2fabde1396
3 changed files with 42 additions and 6 deletions

View File

@@ -1,3 +1,4 @@
use std::fmt;
use std::ops::{Add, AddAssign, Sub, SubAssign};
use crate::*;
@@ -316,8 +317,19 @@ impl Div<f32> for Pos2 {
}
}
impl std::fmt::Debug for Pos2 {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
impl fmt::Debug for Pos2 {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "[{:.1} {:.1}]", self.x, self.y)
}
}
impl fmt::Display for Pos2 {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str("[")?;
self.x.fmt(f)?;
f.write_str(" ")?;
self.y.fmt(f)?;
f.write_str("]")?;
Ok(())
}
}