aboutsummaryrefslogtreecommitdiff
path: root/src/print.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/print.rs')
-rw-r--r--src/print.rs189
1 files changed, 145 insertions, 44 deletions
diff --git a/src/print.rs b/src/print.rs
index 28e1b9e..421efa3 100644
--- a/src/print.rs
+++ b/src/print.rs
@@ -9,61 +9,166 @@ struct SymbolTableElement {
character: &'static str,
}
-const GREEN_FG :&str = "\x1b[32m";
-const ORANGE_FG :&str = "\x1b[38;5;208m";
-const RED_FG :&str = "\x1b[31m";
+const GREEN_FG: &str = "\x1b[32m";
+const ORANGE_FG: &str = "\x1b[38;5;208m";
+const RED_FG: &str = "\x1b[31m";
// const BLACK_FG :&str = "\x1b[31m";
-const BLACK_BG :&str = "\x1b[40m";
-const GREEN_BG :&str = "\x1b[40m";
-const ORANGE_BG :&str = "\x1b[48;5;208m";
-const ERASE_LINE_END:&str = "\x1b[0K";
+const BLACK_BG: &str = "\x1b[40m";
+const GREEN_BG: &str = "\x1b[40m";
+const ORANGE_BG: &str = "\x1b[48;5;208m";
+const ERASE_LINE_END: &str = "\x1b[0K";
+const RESET: &str = "\x1b[0m";
-const CHARS_TABLE :[SymbolTableElement; 25] = [
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▁"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▂"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▃"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▄"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▅"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▆"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "▇"},
- SymbolTableElement{ fg: GREEN_FG, bg: BLACK_BG, character: "█"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▁"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▂"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▃"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▄"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▅"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▆"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "▇"},
- SymbolTableElement{ fg: ORANGE_FG, bg: GREEN_BG, character: "█"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▁"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▂"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▃"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▄"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▅"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▆"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "▇"},
- SymbolTableElement{ fg: RED_FG, bg: ORANGE_BG, character: "█"},
- SymbolTableElement{ fg: RED_FG, bg: BLACK_BG, character: "?"}
+const CHARS_TABLE: [SymbolTableElement; 25] = [
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▁",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▂",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▃",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▄",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▅",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▆",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "▇",
+ },
+ SymbolTableElement {
+ fg: GREEN_FG,
+ bg: BLACK_BG,
+ character: "█",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▁",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▂",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▃",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▄",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▅",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▆",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "▇",
+ },
+ SymbolTableElement {
+ fg: ORANGE_FG,
+ bg: GREEN_BG,
+ character: "█",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▁",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▂",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▃",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▄",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▅",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▆",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "▇",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: ORANGE_BG,
+ character: "█",
+ },
+ SymbolTableElement {
+ fg: RED_FG,
+ bg: BLACK_BG,
+ character: "?",
+ },
];
pub fn print_legende_line() {
for (index, element) in CHARS_TABLE.iter().enumerate() {
let val = 10 * index as u64;
- print!("{} {}{}{}\x1b[0m ", val, element.fg, element.bg, element.character);
+ print!(
+ "{} {}{}{}\x1b[0m ",
+ val, element.fg, element.bg, element.character
+ );
}
- println!("");
+ println!();
}
+// TODO: Simplify this function
pub fn print_ping_line(states: &Vec<State>) {
for state in states {
match state {
State::Received { rtt, .. } => {
let (fg, bg, symbol) = get_symbol_and_colors_for_rrt(*rtt);
- print!("{}{}{}{}", fg, bg, symbol, "\x1b[0m");
+ print!("{}{}{}{}", fg, bg, symbol, RESET);
}
State::Lost => {
let (fg, bg, symbol) = get_symbol_and_colors_for_rrt(250);
- print!("{}{}{}{}", fg, bg, symbol, "\x1b[0m");
+ print!("{}{}{}{}", fg, bg, symbol, RESET);
}
State::NotYetReceived { .. } => {
// fg grey, bg black
@@ -75,16 +180,12 @@ pub fn print_ping_line(states: &Vec<State>) {
}
}
- println!("");
+ println!();
}
fn get_symbol_and_colors_for_rrt(rrt: u64) -> (&'static str, &'static str, &'static str) {
- let index: usize = if rrt >= 240 {
- 24
- } else {
- rrt / 10
- } as usize;
- let SymbolTableElement{fg, bg, character} = CHARS_TABLE[index];
+ let index: usize = if rrt >= 240 { 24 } else { rrt / 10 } as usize;
+ let SymbolTableElement { fg, bg, character } = CHARS_TABLE[index];
(fg, bg, character)
}