anvil_zksync_traces/format/
numbers.rs

1use std::fmt::{self, Display};
2
3use anvil_zksync_types::numbers::NumberExponentialRepr;
4use colored::Colorize;
5
6pub struct PrettyNumberExponentialRepr<'a>(pub &'a NumberExponentialRepr);
7
8impl Display for PrettyNumberExponentialRepr<'_> {
9    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
10        if self.0.value.inner.is_zero() {
11            write!(f, "0")
12        } else {
13            f.write_fmt(format_args!("{}", self.0.value))?;
14            if self.0.value.inner > 10_000.into() {
15                let exponential = format!("[{}]", self.0).dimmed();
16                f.write_fmt(format_args!(" {}", exponential))?;
17            }
18            Ok(())
19        }
20    }
21}