Skip to content

Commit ce2add4

Browse files
committed
showing a min 1 bar red if there is any packet loss above 0%
1 parent 52a313b commit ce2add4

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

src/tui/dashboard.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,13 @@ fn udp_split_bar(sent: u64, received: u64, width: usize) -> Line<'static> {
2020
let safe_sent = sent.max(1);
2121
let safe_received = received.min(safe_sent);
2222
let lost = safe_sent.saturating_sub(safe_received);
23-
// Use floor for ok_units so any loss shows at least one red segment
24-
let ok_units = ((safe_received as f64 / safe_sent as f64) * width as f64).floor() as usize;
25-
let lost_units = width.saturating_sub(ok_units);
23+
// Ensure any loss shows at least one red segment
24+
let lost_units = if lost > 0 {
25+
(width as f64 * lost as f64 / safe_sent as f64).ceil().max(1.0) as usize
26+
} else {
27+
0
28+
};
29+
let ok_units = width.saturating_sub(lost_units);
2630

2731
let ok_part = "=".repeat(ok_units);
2832
let lost_part = "x".repeat(lost_units);
@@ -365,7 +369,7 @@ pub fn draw_dashboard(area: Rect, f: &mut Frame, state: &UiState) {
365369

366370
// Ensure any loss shows at least one red segment
367371
let lost_units = if lost > 0 {
368-
((lost as f64 / safe_total as f64) * bar_width as f64).ceil() as usize
372+
((lost as f64 / safe_total as f64) * bar_width as f64).ceil().max(1.0) as usize
369373
} else {
370374
0
371375
};

0 commit comments

Comments
 (0)