91 lines
2.7 KiB
Rust
91 lines
2.7 KiB
Rust
extern crate termion;
|
|
|
|
use termion::color;
|
|
|
|
const COLOR_RESET: color::Fg<color::Reset> = color::Fg(color::Reset);
|
|
const COLOR_SYMBOLS: color::Fg<color::LightGreen> = color::Fg(color::LightGreen);
|
|
const COLOR_TEXT: color::Fg<color::Cyan> = color::Fg(color::Cyan);
|
|
const COLOR_NUMBERS: color::Fg<color::LightBlue> = color::Fg(color::LightBlue);
|
|
const COLOR_OTHER: color::Fg<color::Yellow> = color::Fg(color::Yellow);
|
|
|
|
pub fn map_u8_to_color(data: u8) -> String {
|
|
if super::isatty() {
|
|
match data {
|
|
32..=47 => format!("{}{:02x}{}", COLOR_SYMBOLS, data, COLOR_RESET),
|
|
48..=57 => format!("{}{:02x}{}", COLOR_NUMBERS, data, COLOR_RESET),
|
|
58..=64 => format!("{}{:02x}{}", COLOR_SYMBOLS, data, COLOR_RESET),
|
|
65..=90 => format!("{}{:02x}{}", COLOR_TEXT, data, COLOR_RESET),
|
|
91..=96 => format!("{}{:02x}{}", COLOR_SYMBOLS, data, COLOR_RESET),
|
|
97..=122 => format!("{}{:02x}{}", COLOR_TEXT, data, COLOR_RESET),
|
|
123..=126 => format!("{}{:02x}{}", COLOR_SYMBOLS, data, COLOR_RESET),
|
|
_ => format!(
|
|
"{}{:02x}{}",
|
|
COLOR_OTHER,
|
|
data,
|
|
COLOR_RESET
|
|
),
|
|
}
|
|
} else {
|
|
format!("{:02x}", data)
|
|
}
|
|
}
|
|
|
|
pub fn map_char_to_color(data: u8) -> String {
|
|
if super::isatty() {
|
|
match data {
|
|
32..=47 => format!(
|
|
"{}{}{}",
|
|
COLOR_SYMBOLS,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
48..=57 => format!(
|
|
"{}{}{}",
|
|
COLOR_NUMBERS,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
58..=64 => format!(
|
|
"{}{}{}",
|
|
COLOR_SYMBOLS,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
65..=90 => format!(
|
|
"{}{}{}",
|
|
COLOR_TEXT,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
91..=96 => format!(
|
|
"{}{}{}",
|
|
COLOR_SYMBOLS,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
97..=122 => format!(
|
|
"{}{}{}",
|
|
COLOR_TEXT,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
123..=126 => format!(
|
|
"{}{}{}",
|
|
COLOR_SYMBOLS,
|
|
(data as char),
|
|
COLOR_RESET
|
|
),
|
|
_ => format!(
|
|
"{}.{}",
|
|
COLOR_SYMBOLS,
|
|
COLOR_RESET
|
|
),
|
|
}
|
|
} else {
|
|
match data {
|
|
32..=126 => format!("{}", (data as char)),
|
|
_ => ".".to_string(),
|
|
}
|
|
}
|
|
}
|