From 63df220a38b13999294fd1187bf72082ebdd4ec7 Mon Sep 17 00:00:00 2001 From: Clement Tsang <34804052+ClementTsang@users.noreply.github.com> Date: Sun, 20 Nov 2022 02:21:20 -0500 Subject: [PATCH] other: clean up some strings (#904) * other: clean up some strings * formatting --- Cargo.lock | 64 ++++ Cargo.toml | 1 + src/app/data_harvester.rs | 3 - src/bin/main.rs | 3 +- src/canvas/canvas_colours.rs | 30 +- src/canvas/canvas_colours/colour_utils.rs | 78 ++--- src/canvas/widgets/battery_display.rs | 7 +- src/constants.rs | 392 +++++++++++----------- src/data_conversion.rs | 4 +- src/options.rs | 46 +-- src/utils/error.rs | 8 +- src/utils/gen_util.rs | 24 +- 12 files changed, 352 insertions(+), 308 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7cddac68..bf6af4e8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -235,6 +235,7 @@ dependencies = [ "mach2", "nvml-wrapper", "once_cell", + "phf", "predicates", "procfs", "regex", @@ -1289,6 +1290,48 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "phf" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92aacdc5f16768709a569e913f7451034034178b05bdc8acda226659a3dccc66" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "phf_shared" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project-lite" version = "0.2.9" @@ -1375,6 +1418,21 @@ dependencies = [ "proc-macro2", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + [[package]] name = "rayon" version = "1.5.2" @@ -1550,6 +1608,12 @@ dependencies = [ "libc", ] +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + [[package]] name = "slab" version = "0.4.6" diff --git a/Cargo.toml b/Cargo.toml index 36bbc299..f881ad74 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,6 +79,7 @@ indexmap = "1.8.1" itertools = "0.10.3" kstring = { version = "2.0.0", features = ["arc"] } log = { version = "0.4.16", optional = true } +phf = { version = "0.11", features = ["macros"] } nvml-wrapper = { version = "0.8.0", optional = true } once_cell = "1.5.2" regex = "1.5.5" diff --git a/src/app/data_harvester.rs b/src/app/data_harvester.rs index 25913077..c85f1b41 100644 --- a/src/app/data_harvester.rs +++ b/src/app/data_harvester.rs @@ -3,13 +3,10 @@ use std::time::Instant; use futures::join; - #[cfg(target_os = "linux")] use fxhash::FxHashMap; - #[cfg(feature = "battery")] use starship_battery::{Battery, Manager}; - #[cfg(not(target_os = "linux"))] use sysinfo::{System, SystemExt}; diff --git a/src/bin/main.rs b/src/bin/main.rs index 7168900b..84b91828 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -134,9 +134,10 @@ fn main() -> Result<()> { #[cfg(target_os = "freebsd")] let _stderr_fd = { // A really ugly band-aid to suppress stderr warnings on FreeBSD due to sysinfo. - use filedescriptor::{FileDescriptor, StdioDescriptor}; use std::fs::OpenOptions; + use filedescriptor::{FileDescriptor, StdioDescriptor}; + let path = OpenOptions::new().write(true).open("/dev/null")?; FileDescriptor::redirect_stdio(&path, StdioDescriptor::Stderr)? }; diff --git a/src/canvas/canvas_colours.rs b/src/canvas/canvas_colours.rs index 6a43a305..742bdb28 100644 --- a/src/canvas/canvas_colours.rs +++ b/src/canvas/canvas_colours.rs @@ -1,3 +1,5 @@ +use std::borrow::Cow; + use anyhow::Context; use colour_utils::*; use tui::style::{Color, Style}; @@ -45,15 +47,13 @@ impl Default for CanvasColours { CanvasColours { currently_selected_text_colour: Color::Black, currently_selected_bg_colour: Color::Cyan, - currently_selected_text_style: Style::default() - .fg(Color::Black) - .bg(STANDARD_HIGHLIGHT_COLOUR), - table_header_style: Style::default().fg(STANDARD_HIGHLIGHT_COLOUR), - ram_style: Style::default().fg(STANDARD_FIRST_COLOUR), - swap_style: Style::default().fg(STANDARD_SECOND_COLOUR), - arc_style: Style::default().fg(STANDARD_THIRD_COLOUR), + currently_selected_text_style: Style::default().fg(Color::Black).bg(HIGHLIGHT_COLOUR), + table_header_style: Style::default().fg(HIGHLIGHT_COLOUR), + ram_style: Style::default().fg(FIRST_COLOUR), + swap_style: Style::default().fg(SECOND_COLOUR), + arc_style: Style::default().fg(THIRD_COLOUR), gpu_colour_styles: vec![ - Style::default().fg(STANDARD_FOURTH_COLOUR), + Style::default().fg(FOURTH_COLOUR), Style::default().fg(Color::LightBlue), Style::default().fg(Color::LightRed), Style::default().fg(Color::Cyan), @@ -61,10 +61,10 @@ impl Default for CanvasColours { Style::default().fg(Color::Blue), Style::default().fg(Color::Red), ], - rx_style: Style::default().fg(STANDARD_FIRST_COLOUR), - tx_style: Style::default().fg(STANDARD_SECOND_COLOUR), - total_rx_style: Style::default().fg(STANDARD_THIRD_COLOUR), - total_tx_style: Style::default().fg(STANDARD_FOURTH_COLOUR), + rx_style: Style::default().fg(FIRST_COLOUR), + tx_style: Style::default().fg(SECOND_COLOUR), + total_rx_style: Style::default().fg(THIRD_COLOUR), + total_tx_style: Style::default().fg(FOURTH_COLOUR), all_colour_style: Style::default().fg(ALL_COLOUR), avg_colour_style: Style::default().fg(AVG_COLOUR), cpu_colour_styles: vec![ @@ -80,7 +80,7 @@ impl Default for CanvasColours { Style::default().fg(Color::Red), ], border_style: Style::default().fg(text_colour), - highlighted_border_style: Style::default().fg(STANDARD_HIGHLIGHT_COLOUR), + highlighted_border_style: Style::default().fg(HIGHLIGHT_COLOUR), text_style: Style::default().fg(text_colour), widget_title_style: Style::default().fg(text_colour), graph_style: Style::default().fg(text_colour), @@ -283,7 +283,7 @@ impl CanvasColours { Ok(()) } - pub fn set_gpu_colours(&mut self, colours: &[String]) -> error::Result<()> { + pub fn set_gpu_colours(&mut self, colours: &[Cow<'static, str>]) -> error::Result<()> { self.gpu_colour_styles = colours .iter() .map(|colour| get_style_from_config(colour)) @@ -321,7 +321,7 @@ impl CanvasColours { Ok(()) } - pub fn set_cpu_colours(&mut self, colours: &[String]) -> error::Result<()> { + pub fn set_cpu_colours(&mut self, colours: &[Cow<'static, str>]) -> error::Result<()> { self.cpu_colour_styles = colours .iter() .map(|colour| get_style_from_config(colour)) diff --git a/src/canvas/canvas_colours/colour_utils.rs b/src/canvas/canvas_colours/colour_utils.rs index 995bdb42..4948d5c4 100644 --- a/src/canvas/canvas_colours/colour_utils.rs +++ b/src/canvas/canvas_colours/colour_utils.rs @@ -1,44 +1,35 @@ -use std::collections::HashMap; - -use once_cell::sync::Lazy; use tui::style::{Color, Style}; use crate::utils::error; -// Approx, good enough for use (also Clippy gets mad if it's too long) -pub const STANDARD_FIRST_COLOUR: Color = Color::LightMagenta; -pub const STANDARD_SECOND_COLOUR: Color = Color::LightYellow; -pub const STANDARD_THIRD_COLOUR: Color = Color::LightCyan; -pub const STANDARD_FOURTH_COLOUR: Color = Color::LightGreen; -pub const STANDARD_HIGHLIGHT_COLOUR: Color = Color::LightBlue; +pub const FIRST_COLOUR: Color = Color::LightMagenta; +pub const SECOND_COLOUR: Color = Color::LightYellow; +pub const THIRD_COLOUR: Color = Color::LightCyan; +pub const FOURTH_COLOUR: Color = Color::LightGreen; +pub const HIGHLIGHT_COLOUR: Color = Color::LightBlue; pub const AVG_COLOUR: Color = Color::Red; pub const ALL_COLOUR: Color = Color::Green; -static COLOR_NAME_LOOKUP_TABLE: Lazy> = Lazy::new(|| { - [ - ("reset", Color::Reset), - ("black", Color::Black), - ("red", Color::Red), - ("green", Color::Green), - ("yellow", Color::Yellow), - ("blue", Color::Blue), - ("magenta", Color::Magenta), - ("cyan", Color::Cyan), - ("gray", Color::Gray), - ("grey", Color::Gray), - ("darkgray", Color::DarkGray), - ("lightred", Color::LightRed), - ("lightgreen", Color::LightGreen), - ("lightyellow", Color::LightYellow), - ("lightblue", Color::LightBlue), - ("lightmagenta", Color::LightMagenta), - ("lightcyan", Color::LightCyan), - ("white", Color::White), - ] - .iter() - .copied() - .collect() -}); +static COLOR_LOOKUP_TABLE: phf::Map<&'static str, Color> = phf::phf_map! { + "reset" => Color::Reset, + "black" => Color::Black, + "red" => Color::Red, + "green" => Color::Green, + "yellow" => Color::Yellow, + "blue" => Color::Blue, + "magenta" => Color::Magenta, + "cyan" => Color::Cyan, + "gray" => Color::Gray, + "grey" => Color::Gray, + "darkgray" => Color::DarkGray, + "lightred" => Color::LightRed, + "lightgreen" => Color::LightGreen, + "lightyellow" => Color::LightYellow, + "lightblue" => Color::LightBlue, + "lightmagenta" => Color::LightMagenta, + "lightcyan" => Color::LightCyan, + "white" => Color::White, +}; pub fn convert_hex_to_color(hex: &str) -> error::Result { fn hex_err(hex: &str) -> error::Result { @@ -149,14 +140,12 @@ pub fn get_style_from_rgb(rgb_str: &str) -> error::Result