cli-output: Minor refactor of build_balance_message()
This commit is contained in:
committed by
mergify[bot]
parent
5d8c5254b0
commit
580b0859e8
@ -7,22 +7,63 @@ use solana_sdk::{
|
|||||||
use solana_transaction_status::UiTransactionStatusMeta;
|
use solana_transaction_status::UiTransactionStatusMeta;
|
||||||
use std::{collections::HashMap, fmt, io};
|
use std::{collections::HashMap, fmt, io};
|
||||||
|
|
||||||
pub fn build_balance_message(lamports: u64, use_lamports_unit: bool, show_unit: bool) -> String {
|
#[derive(Clone, Debug)]
|
||||||
if use_lamports_unit {
|
pub struct BuildBalanceMessageConfig {
|
||||||
let ess = if lamports == 1 { "" } else { "s" };
|
pub use_lamports_unit: bool,
|
||||||
let unit = if show_unit {
|
pub show_unit: bool,
|
||||||
format!(" lamport{}", ess)
|
pub trim_trailing_zeros: bool,
|
||||||
} else {
|
}
|
||||||
"".to_string()
|
|
||||||
};
|
impl Default for BuildBalanceMessageConfig {
|
||||||
format!("{:?}{}", lamports, unit)
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
use_lamports_unit: false,
|
||||||
|
show_unit: true,
|
||||||
|
trim_trailing_zeros: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn build_balance_message_with_config(
|
||||||
|
lamports: u64,
|
||||||
|
config: &BuildBalanceMessageConfig,
|
||||||
|
) -> String {
|
||||||
|
let value = if config.use_lamports_unit {
|
||||||
|
lamports.to_string()
|
||||||
} else {
|
} else {
|
||||||
let sol = lamports_to_sol(lamports);
|
let sol = lamports_to_sol(lamports);
|
||||||
let sol_str = format!("{:.9}", sol);
|
let sol_str = format!("{:.9}", sol);
|
||||||
let pretty_sol = sol_str.trim_end_matches('0').trim_end_matches('.');
|
if config.trim_trailing_zeros {
|
||||||
let unit = if show_unit { " SOL" } else { "" };
|
sol_str
|
||||||
format!("{}{}", pretty_sol, unit)
|
.trim_end_matches('0')
|
||||||
}
|
.trim_end_matches('.')
|
||||||
|
.to_string()
|
||||||
|
} else {
|
||||||
|
sol_str
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let unit = if config.show_unit {
|
||||||
|
if config.use_lamports_unit {
|
||||||
|
let ess = if lamports == 1 { "" } else { "s" };
|
||||||
|
format!(" lamport{}", ess)
|
||||||
|
} else {
|
||||||
|
" SOL".to_string()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
"".to_string()
|
||||||
|
};
|
||||||
|
format!("{}{}", value, unit)
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn build_balance_message(lamports: u64, use_lamports_unit: bool, show_unit: bool) -> String {
|
||||||
|
build_balance_message_with_config(
|
||||||
|
lamports,
|
||||||
|
&BuildBalanceMessageConfig {
|
||||||
|
use_lamports_unit,
|
||||||
|
show_unit,
|
||||||
|
..BuildBalanceMessageConfig::default()
|
||||||
|
},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pretty print a "name value"
|
// Pretty print a "name value"
|
||||||
|
Reference in New Issue
Block a user