cli-output: Add CliBalance (#26703)

This commit is contained in:
Brooks Prumo 2022-07-21 18:31:38 -05:00 committed by GitHub
parent f2b81fe665
commit 10a868dac7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 39 additions and 0 deletions

View File

@ -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 {