From 10a868dac758b1462252e4a308d7fe6c01937052 Mon Sep 17 00:00:00 2001 From: Brooks Prumo Date: Thu, 21 Jul 2022 18:31:38 -0500 Subject: [PATCH] cli-output: Add CliBalance (#26703) --- cli-output/src/cli_output.rs | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/cli-output/src/cli_output.rs b/cli-output/src/cli_output.rs index d02b43dc71..8a7c9dad6c 100644 --- a/cli-output/src/cli_output.rs +++ b/cli-output/src/cli_output.rs @@ -2713,6 +2713,45 @@ impl fmt::Display for CliPingConfirmationStats { impl QuietDisplay for CliPingConfirmationStats {} impl VerboseDisplay for CliPingConfirmationStats {} +#[derive(Serialize, Deserialize, Debug)] +#[serde(rename_all = "camelCase")] +pub struct CliBalance { + pub lamports: u64, + #[serde(skip)] + pub config: BuildBalanceMessageConfig, +} + +impl QuietDisplay for CliBalance { + fn write_str(&self, w: &mut dyn std::fmt::Write) -> std::fmt::Result { + let config = BuildBalanceMessageConfig { + show_unit: false, + trim_trailing_zeros: true, + ..self.config + }; + let balance_message = build_balance_message_with_config(self.lamports, &config); + write!(w, "{}", balance_message) + } +} + +impl VerboseDisplay for CliBalance { + fn write_str(&self, w: &mut dyn std::fmt::Write) -> std::fmt::Result { + let config = BuildBalanceMessageConfig { + show_unit: true, + trim_trailing_zeros: false, + ..self.config + }; + let balance_message = build_balance_message_with_config(self.lamports, &config); + write!(w, "{}", balance_message) + } +} + +impl fmt::Display for CliBalance { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + let balance_message = build_balance_message_with_config(self.lamports, &self.config); + write!(f, "{}", balance_message) + } +} + #[cfg(test)] mod tests { use {