From 4e9eb6578059d314236dbe4c7f123e41399a884b Mon Sep 17 00:00:00 2001 From: Jaby Date: Wed, 16 Aug 2023 11:21:10 +0200 Subject: [PATCH] Reduce percision for display --- src/Tools/psxreadmap/src/lib.rs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/Tools/psxreadmap/src/lib.rs b/src/Tools/psxreadmap/src/lib.rs index 626f5d5a..2f1e1964 100644 --- a/src/Tools/psxreadmap/src/lib.rs +++ b/src/Tools/psxreadmap/src/lib.rs @@ -266,12 +266,34 @@ impl ConsoleUI { } fn create_mem_gauge_from<'a>(section_info: &SectionInfo, color: Color) -> Gauge<'a> { + const PERCISION:usize = 5; + const FLOAT_DISPLAY_LIMIT:f64 = { + let mut base = 1.0f64; + let mut i = 0; + + while i < PERCISION { + base = base/10.0f64; + i += 1; + + } + base + }; + let adr_ratio = section_info.get_size_ratio(); Gauge::default().block(Block::default().borders(Borders::ALL) .title(format!("{} @0x{:x} - 0x{:x} [{}b/{}b]", section_info.name, section_info.start_adr, section_info.get_end_adr(), section_info.size, section_info.max_size))) .gauge_style(Style::default().fg(color).bg(Color::Black).add_modifier(Modifier::BOLD)) - .ratio(adr_ratio).label(format!("{}%", adr_ratio*100.0f64)) + .ratio(adr_ratio).label({ + let adr_ratio = adr_ratio*100.0f64; + if adr_ratio > FLOAT_DISPLAY_LIMIT { + format!("{:.width$}%", adr_ratio, width=PERCISION) + } + + else { + format!("< {:.width$}%", FLOAT_DISPLAY_LIMIT, width=PERCISION) + } + }) } fn create_exit_message<'a>() -> Paragraph<'a> {