summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2024-01-01 22:20:40 +0000
committerGitHub <noreply@github.com>2024-01-01 17:20:40 -0500
commit228da99489f876780feaf829f82933e07a37c084 (patch)
tree5fdb77451f6d79ead3469442873345fffe68c5ad /src
parente71048e394626d8a2ae148e8bc92a11aeda1f116 (diff)
refactor: move around configuration-related files (#1370)
* rename general utils file * refactor: move around some configuration files * more shuffling around * fix some ugly formatting
Diffstat (limited to 'src')
-rw-r--r--src/app.rs19
-rw-r--r--src/app/data_farmer.rs2
-rw-r--r--src/app/states.rs2
-rw-r--r--src/bin/main.rs9
-rw-r--r--src/canvas.rs12
-rw-r--r--src/canvas/styling.rs2
-rw-r--r--src/canvas/tui_widgets/data_table.rs27
-rw-r--r--src/canvas/tui_widgets/data_table/sortable.rs2
-rw-r--r--src/canvas/tui_widgets/time_chart.rs2
-rw-r--r--src/canvas/widgets/disk_table.rs2
-rw-r--r--src/canvas/widgets/network_graph.rs2
-rw-r--r--src/constants.rs2
-rw-r--r--src/data_collection.rs24
-rw-r--r--src/data_collection/disks.rs10
-rw-r--r--src/data_collection/disks/unix.rs6
-rw-r--r--src/data_collection/disks/unix/linux/mod.rs4
-rw-r--r--src/data_collection/disks/unix/macos/io_kit.rs8
-rw-r--r--src/data_collection/disks/unix/macos/mod.rs4
-rw-r--r--src/data_collection/disks/windows.rs6
-rw-r--r--src/data_collection/processes.rs10
-rw-r--r--src/data_collection/processes/linux.rs1
-rw-r--r--src/data_collection/processes/macos.rs3
-rw-r--r--src/data_collection/processes/unix.rs1
-rw-r--r--src/data_conversion.rs4
-rw-r--r--src/lib.rs35
-rw-r--r--src/options.rs1151
-rw-r--r--src/options/args.rs (renamed from src/args.rs)0
-rw-r--r--src/options/config.rs1147
-rw-r--r--src/options/config/cpu.rs (renamed from src/options/cpu.rs)0
-rw-r--r--src/options/config/layout.rs (renamed from src/options/layout_options.rs)0
-rw-r--r--src/options/config/process_columns.rs (renamed from src/options/process_columns.rs)0
-rw-r--r--src/utils/general.rs (renamed from src/utils/gen_util.rs)0
-rw-r--r--src/widgets.rs25
-rw-r--r--src/widgets/cpu_graph.rs4
-rw-r--r--src/widgets/disk_table.rs2
-rw-r--r--src/widgets/process_table.rs16
-rw-r--r--src/widgets/process_table/proc_widget_column.rs2
-rw-r--r--src/widgets/process_table/proc_widget_data.rs2
-rw-r--r--src/widgets/process_table/sort_table.rs2
-rw-r--r--src/widgets/temperature_table.rs2
40 files changed, 1269 insertions, 1283 deletions
diff --git a/src/app.rs b/src/app.rs
index eea35288..f9e7de16 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -1,3 +1,11 @@
+pub mod data_farmer;
+pub mod filter;
+pub mod frozen_state;
+pub mod layout_manager;
+mod process_killer;
+pub mod query;
+pub mod states;
+
use std::{
cmp::{max, min},
time::Instant,
@@ -6,6 +14,7 @@ use std::{
use concat_string::concat_string;
use data_farmer::*;
use filter::*;
+use frozen_state::FrozenState;
use hashbrown::HashMap;
use layout_manager::*;
pub use states::*;
@@ -23,16 +32,6 @@ use crate::{
Pid,
};
-pub mod data_farmer;
-pub mod filter;
-pub mod frozen_state;
-pub mod layout_manager;
-mod process_killer;
-pub mod query;
-pub mod states;
-
-use frozen_state::FrozenState;
-
#[derive(Debug, Clone, Eq, PartialEq, Default)]
pub enum AxisScaling {
#[default]
diff --git a/src/app/data_farmer.rs b/src/app/data_farmer.rs
index 720092db..3ad819be 100644
--- a/src/app/data_farmer.rs
+++ b/src/app/data_farmer.rs
@@ -21,7 +21,7 @@ use hashbrown::HashMap;
use crate::data_collection::batteries;
use crate::{
data_collection::{cpu, disks, memory, network, processes::ProcessHarvest, temperature, Data},
- utils::{data_prefixes::*, gen_util::get_decimal_bytes},
+ utils::{data_prefixes::*, general::get_decimal_bytes},
Pid,
};
diff --git a/src/app/states.rs b/src/app/states.rs
index f22a0221..8b5f0ce8 100644
--- a/src/app/states.rs
+++ b/src/app/states.rs
@@ -7,7 +7,7 @@ use unicode_segmentation::{GraphemeCursor, GraphemeIncomplete, UnicodeSegmentati
use crate::{
app::{layout_manager::BottomWidgetType, query::*},
constants,
- utils::gen_util::str_width,
+ utils::general::str_width,
widgets::{
BatteryWidgetState, CpuWidgetState, DiskTableWidget, MemWidgetState, NetWidgetState,
ProcWidgetState, TempWidgetState,
diff --git a/src/bin/main.rs b/src/bin/main.rs
index a5218efe..4d588a94 100644
--- a/src/bin/main.rs
+++ b/src/bin/main.rs
@@ -15,15 +15,12 @@ use std::{
use anyhow::{Context, Result};
use bottom::{
args,
- canvas::{
- styling::CanvasStyling,
- {self},
- },
+ canvas::{self, styling::CanvasStyling},
check_if_terminal, cleanup_terminal, create_collection_thread, create_input_thread,
create_or_get_config,
data_conversion::*,
handle_key_event_or_break, handle_mouse_event,
- options::*,
+ options::config::{get_color_scheme, get_widget_layout, init_app},
panic_hook, read_config, try_drawing, update_data, BottomEvent,
};
use crossterm::{
@@ -73,7 +70,7 @@ fn main() -> Result<()> {
};
// Create an "app" struct, which will control most of the program and store settings/state
- let mut app = build_app(
+ let mut app = init_app(
matches,
config,
&widget_layout,
diff --git a/src/canvas.rs b/src/canvas.rs
index 8960f0a0..6b18f1c7 100644
--- a/src/canvas.rs
+++ b/src/canvas.rs
@@ -1,3 +1,9 @@
+mod dialogs;
+mod drawing_utils;
+pub mod styling;
+pub mod tui_widgets;
+mod widgets;
+
use std::str::FromStr;
use itertools::izip;
@@ -19,12 +25,6 @@ use crate::{
utils::{error, error::BottomError},
};
-mod dialogs;
-mod drawing_utils;
-pub mod styling;
-pub mod tui_widgets;
-mod widgets;
-
#[derive(Debug)]
pub enum ColourScheme {
Default,
diff --git a/src/canvas/styling.rs b/src/canvas/styling.rs
index efd7638f..c317e8a0 100644
--- a/src/canvas/styling.rs
+++ b/src/canvas/styling.rs
@@ -5,7 +5,7 @@ use tui::style::{Color, Style};
use super::ColourScheme;
use crate::{
constants::*,
- options::{Config, ConfigColours},
+ options::config::{Config, ConfigColours},
utils::error,
};
mod colour_utils;
diff --git a/src/canvas/tui_widgets/data_table.rs b/src/canvas/tui_widgets/data_table.rs
index 4ae23d1d..5fb4a591 100644
--- a/src/canvas/tui_widgets/data_table.rs
+++ b/src/canvas/tui_widgets/data_table.rs
@@ -1,27 +1,22 @@
-use std::{convert::TryInto, marker::PhantomData};
-
pub mod column;
-pub use column::*;
-
-pub mod styling;
-pub use styling::*;
-
+pub mod data_type;
+pub mod draw;
pub mod props;
-pub use props::DataTableProps;
-
+pub mod sortable;
pub mod state;
-pub use state::{DataTableState, ScrollDirection};
+pub mod styling;
-pub mod draw;
-pub use draw::*;
+use std::{convert::TryInto, marker::PhantomData};
-pub mod data_type;
+pub use column::*;
pub use data_type::*;
-
-pub mod sortable;
+pub use draw::*;
+pub use props::DataTableProps;
pub use sortable::*;
+pub use state::{DataTableState, ScrollDirection};
+pub use styling::*;
-use crate::utils::gen_util::ClampExt;
+use crate::utils::general::ClampExt;
/// A [`DataTable`] is a component that displays data in a tabular form.
///
diff --git a/src/canvas/tui_widgets/data_table/sortable.rs b/src/canvas/tui_widgets/data_table/sortable.rs
index 3a3de1fc..f6c3b502 100644
--- a/src/canvas/tui_widgets/data_table/sortable.rs
+++ b/src/canvas/tui_widgets/data_table/sortable.rs
@@ -8,7 +8,7 @@ use super::{
ColumnHeader, ColumnWidthBounds, DataTable, DataTableColumn, DataTableProps, DataTableState,
DataTableStyling, DataToCell,
};
-use crate::utils::gen_util::truncate_to_text;
+use crate::utils::general::truncate_to_text;
/// Denotes the sort order.
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
diff --git a/src/canvas/tui_widgets/time_chart.rs b/src/canvas/tui_widgets/time_chart.rs
index 403ef507..747c2ae3 100644
--- a/src/canvas/tui_widgets/time_chart.rs
+++ b/src/canvas/tui_widgets/time_chart.rs
@@ -16,7 +16,7 @@ use tui::{
};
use unicode_width::UnicodeWidthStr;
-use crate::utils::gen_util::partial_ordering;
+use crate::utils::general::partial_ordering;
/// A single graph point.
pub type Point = (f64, f64);
diff --git a/src/canvas/widgets/disk_table.rs b/src/canvas/widgets/disk_table.rs
index 5b6b2619..fe241d14 100644
--- a/src/canvas/widgets/disk_table.rs
+++ b/src/canvas/widgets/disk_table.rs
@@ -1,7 +1,7 @@
use tui::{layout::Rect, terminal::Frame};
use crate::{
- app::{self},
+ app,
canvas::{
tui_widgets::data_table::{DrawInfo, SelectionState},
Painter,
diff --git a/src/canvas/widgets/network_graph.rs b/src/canvas/widgets/network_graph.rs
index 7c8ce913..af1b6d73 100644
--- a/src/canvas/widgets/network_graph.rs
+++ b/src/canvas/widgets/network_graph.rs
@@ -16,7 +16,7 @@ use crate::{
},
Painter,
},
- utils::{data_prefixes::*, data_units::DataUnit, gen_util::partial_ordering},
+ utils::{data_prefixes::*, data_units::DataUnit, general::partial_ordering},
};
impl Painter {
diff --git a/src/constants.rs b/src/constants.rs
index d736e928..6d312aa4 100644
--- a/src/constants.rs
+++ b/src/constants.rs
@@ -1,6 +1,6 @@
use tui::widgets::Borders;
-use crate::options::ConfigColours;
+use crate::options::config::ConfigColours;
// Default widget ID
pub const DEFAULT_WIDGET_ID: u64 = 56709;
diff --git a/src/data_collection.rs b/src/data_collection.rs
index d140e29e..d00d88e0 100644
--- a/src/data_collection.rs
+++ b/src/data_collection.rs
@@ -1,17 +1,5 @@
//! This is the main file to house data collection functions.
-use std::time::{Duration, Instant};
-
-#[cfg(any(target_os = "linux", feature = "gpu"))]
-use hashbrown::HashMap;
-#[cfg(feature = "battery")]
-use starship_battery::{Battery, Manager};
-use sysinfo::{System, SystemExt};
-
-use self::temperature::TemperatureType;
-use super::DataFilters;
-use crate::app::layout_manager::UsedWidgets;
-
#[cfg(feature = "nvidia")]
pub mod nvidia;
@@ -25,6 +13,18 @@ pub mod network;
pub mod processes;
pub mod temperature;
+use std::time::{Duration, Instant};
+
+#[cfg(any(target_os = "linux", feature = "gpu"))]
+use hashbrown::HashMap;
+#[cfg(feature = "battery")]
+use starship_battery::{Battery, Manager};
+use sysinfo::{System, SystemExt};
+
+use self::temperature::TemperatureType;
+use super::DataFilters;
+use crate::app::layout_manager::UsedWidgets;
+
#[derive(Clone, Debug)]
pub struct Data {
pub collection_time: Instant,
diff --git a/src/data_collection/disks.rs b/src/data_collection/disks.rs
index c4a66eff..8d55de98 100644
--- a/src/data_collection/disks.rs
+++ b/src/data_collection/disks.rs
@@ -1,10 +1,5 @@
//! Data collection about disks (e.g. I/O, usage, space).
-use cfg_if::cfg_if;
-use hashbrown::HashMap;
-
-use crate::app::filter::Filter;
-
cfg_if! {
if #[cfg(target_os = "freebsd")] {
mod freebsd;
@@ -32,6 +27,11 @@ cfg_if! {
}
}
+use cfg_if::cfg_if;
+use hashbrown::HashMap;
+
+use crate::app::filter::Filter;
+
#[derive(Clone, Debug, Default)]
pub struct DiskHarvest {
pub name: String,
diff --git a/src/data_collection/disks/unix.rs b/src/data_collection/disks/unix.rs
index e41b0458..309a0a19 100644
--- a/src/data_collection/disks/unix.rs
+++ b/src/data_collection/disks/unix.rs
@@ -3,10 +3,7 @@
mod file_systems;
-use file_systems::*;
-
mod usage;
-use usage::*;
cfg_if::cfg_if! {
if #[cfg(target_os = "linux")] {
@@ -24,6 +21,9 @@ cfg_if::cfg_if! {
}
}
+use file_systems::*;
+use usage::*;
+
use super::{keep_disk_entry, DiskHarvest};
use crate::data_collection::DataCollector;
diff --git a/src/data_collection/disks/unix/linux/mod.rs b/src/data_collection/disks/unix/linux/mod.rs
index 40a83267..a54a276e 100644
--- a/src/data_collection/disks/unix/linux/mod.rs
+++ b/src/data_collection/disks/unix/linux/mod.rs
@@ -1,5 +1,5 @@
+mod counters;
mod partition;
-pub(crate) use partition::*;
-mod counters;
pub use counters::*;
+pub(crate) use partition::*;
diff --git a/src/data_collection/disks/unix/macos/io_kit.rs b/src/data_collection/disks/unix/macos/io_kit.rs
index 42193fbd..bf585d46 100644
--- a/src/data_collection/disks/unix/macos/io_kit.rs
+++ b/src/data_collection/disks/unix/macos/io_kit.rs
@@ -1,10 +1,8 @@
mod bindings;
-
+mod io_disks;
mod io_iterator;
-pub use io_iterator::*;
-
mod io_object;
-pub use io_object::*;
-mod io_disks;
pub use io_disks::get_disks;
+pub use io_iterator::*;
+pub use io_object::*;
diff --git a/src/data_collection/disks/unix/macos/mod.rs b/src/data_collection/disks/unix/macos/mod.rs
index 97d7e154..9cacc03a 100644
--- a/src/data_collection/disks/unix/macos/mod.rs
+++ b/src/data_collection/disks/unix/macos/mod.rs
@@ -1,4 +1,4 @@
mod counters;
-pub use counters::*;
-
mod io_kit;
+
+pub use counters::*;
diff --git a/src/data_collection/disks/windows.rs b/src/data_collection/disks/windows.rs
index 3da4a866..469bf4bf 100644
--- a/src/data_collection/disks/windows.rs
+++ b/src/data_collection/disks/windows.rs
@@ -1,14 +1,14 @@
//! Disk stats via sysinfo.
+mod bindings;
+
+use bindings::*;
use itertools::Itertools;
use sysinfo::{DiskExt, SystemExt};
use super::{keep_disk_entry, DiskHarvest};
use crate::data_collection::{disks::IoCounters, DataCollector};
-mod bindings;
-use bindings::*;
-
/// Returns I/O stats.
pub(crate) fn io_stats() -> anyhow::Result<Vec<IoCounters>> {
let volume_io = all_volume_io()?;
diff --git a/src/data_collection/processes.rs b/src/data_collection/processes.rs
index b6c4522d..08b48a29 100644
--- a/src/data_collection/processes.rs
+++ b/src/data_collection/processes.rs
@@ -3,13 +3,8 @@
//! For Linux, this is handled by a custom set of functions.
//! For Windows, macOS, FreeBSD, Android, and Linux, this is handled by sysinfo.
-use std::{borrow::Cow, time::Duration};
-
use cfg_if::cfg_if;
-use super::DataCollector;
-use crate::{utils::error, Pid};
-
cfg_if! {
if #[cfg(target_os = "linux")] {
pub mod linux;
@@ -36,6 +31,11 @@ cfg_if! {
}
}
+use std::{borrow::Cow, time::Duration};
+
+use super::DataCollector;
+use crate::{utils::error, Pid};
+
#[derive(Debug, Clone, Default)]
pub struct ProcessHarvest {
/// The pid of the process.
diff --git a/src/data_collection/processes/linux.rs b/src/data_collection/processes/linux.rs
index 6898f37e..18103f11 100644
--- a/src/data_collection/processes/linux.rs
+++ b/src/data_collection/processes/linux.rs
@@ -1,6 +1,7 @@
//! Process data collection for Linux.
mod process;
+
use std::{
fs::{self, File},
io::{BufRead, BufReader},
diff --git a/src/data_collection/processes/macos.rs b/src/data_collection/processes/macos.rs
index 036279c9..42aae82a 100644
--- a/src/data_collection/processes/macos.rs
+++ b/src/data_collection/processes/macos.rs
@@ -1,5 +1,7 @@
//! Process data collection for macOS. Uses sysinfo and custom bindings.
+mod sysctl_bindings;
+
use std::{io, process::Command};
use hashbrown::HashMap;
@@ -8,7 +10,6 @@ use sysinfo::{PidExt, ProcessExt};
use super::UnixProcessExt;
use crate::Pid;
-mod sysctl_bindings;
pub(crate) struct MacOSProcessExt;
diff --git a/src/data_collection/processes/unix.rs b/src/data_collection/processes/unix.rs
index 2e79b578..4c79dc0f 100644
--- a/src/data_collection/processes/unix.rs
+++ b/src/data_collection/processes/unix.rs
@@ -1,6 +1,7 @@
//! Unix-specific parts of process collection.
mod user_table;
+
use cfg_if::cfg_if;
pub use user_table::*;
diff --git a/src/data_conversion.rs b/src/data_conversion.rs
index 5d63a395..f4aee9d6 100644
--- a/src/data_conversion.rs
+++ b/src/data_conversion.rs
@@ -1,13 +1,15 @@
//! This mainly concerns converting collected data into things that the canvas
//! can actually handle.
+// TODO: Split this up!
+
use kstring::KString;
use crate::{
app::{data_farmer::DataCollection, AxisScaling},
canvas::tui_widgets::time_chart::Point,
data_collection::{cpu::CpuDataType, memory::MemHarvest, temperature::TemperatureType},
- utils::{data_prefixes::*, data_units::DataUnit, gen_util::*},
+ utils::{data_prefixes::*, data_units::DataUnit, general::*},
widgets::{DiskWidgetData, TempWidgetData},
};
diff --git a/src/lib.rs b/src/lib.rs
index d84e25e7..380dbf7d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -14,6 +14,21 @@
#![deny(clippy::unimplemented)]
#![deny(clippy::missing_safety_doc)]
+pub mod app;
+pub mod utils {
+ pub mod data_prefixes;
+ pub mod data_units;
+ pub mod error;
+ pub mod general;
+ pub mod logging;
+}
+pub mod canvas;
+pub mod constants;
+pub mod data_collection;
+pub mod data_conversion;
+pub mod options;
+pub mod widgets;
+
use std::{
boxed::Box,
fs,
@@ -44,25 +59,9 @@ use crossterm::{
terminal::{disable_raw_mode, LeaveAlternateScreen},
};
use data_conversion::*;
-use options::*;
+pub use options::args;
+use options::config::Config;
use utils::error;
-
-pub mod app;
-pub mod utils {
- pub mod data_prefixes;
- pub mod data_units;
- pub mod error;
- pub mod gen_util;
- pub mod logging;
-}
-pub mod args;
-pub mod canvas;
-pub mod constants;
-pub mod data_collection;
-pub mod data_conversion;
-pub mod options;
-pub mod widgets;
-
#[allow(unused_imports)]
pub use utils::logging::*;
diff --git a/src/options.rs b/src/options.rs
index 1f3f46c9..459d4320 100644
--- a/src/options.rs
+++ b/src/options.rs
@@ -1,1149 +1,2 @@
-use std::{
- borrow::Cow,
- convert::TryInto,
- str::FromStr,
- time::{Duration, Instant},
-};
-
-use clap::ArgMatches;
-use hashbrown::{HashMap, HashSet};
-use indexmap::IndexSet;
-use layout_options::*;
-use regex::Regex;
-use serde::{Deserialize, Serialize};
-#[cfg(feature = "battery")]
-use starship_battery::Manager;
-
-use crate::{
- app::{filter::Filter, layout_manager::*, *},
- canvas::{styling::CanvasStyling, ColourScheme},
- constants::*,
- data_collection::temperature::TemperatureType,
- utils::{
- data_units::DataUnit,
- error::{self, BottomError},
- },
- widgets::*,
-};
-
-pub mod layout_options;
-
-mod process_columns;
-pub use process_columns::ProcessConfig;
-
-mod cpu;
-use anyhow::{Context, Result};
-pub use cpu::{CpuConfig, CpuDefault};
-
-#[derive(Clone, Debug, Default, Deserialize)]
-pub struct Config {
- pub flags: Option<ConfigFlags>,
- pub colors: Option<ConfigColours>,
- pub row: Option<Vec<Row>>,
- pub disk_filter: Option<IgnoreList>,
- pub mount_filter: Option<IgnoreList>,
- pub temp_filter: Option<IgnoreList>,
- pub net_filter: Option<IgnoreList>,
- pub processes: Option<ProcessConfig>,
- pub cpu: Option<CpuConfig>,
-}
-
-#[derive(Clone, Debug, Deserialize, Serialize)]
-#[serde(untagged)]
-enum StringOrNum {
- String(String),
- Num(u64),
-}
-
-impl From<String> for StringOrNum {
- fn from(value: String) -> Self {
- StringOrNum::String(value)
- }
-}
-
-impl From<u64> for StringOrNum {
- fn from(value: u64) -> Self {
- StringOrNum::Num(value)
- }
-}
-
-#[derive(Clone, Debug, Default, Deserialize, Serialize)]
-pub struct ConfigFlags {
- hide_avg_cpu: Option<bool>,
- dot_marker: Option<bool>,
- temperature_type: Option<String>,
- rate: Option<StringOrNum>,
- left_legend: Option<bool>,
- current_usage: Option<bool>,
- unnormalized_cpu: Option<bool>,
- group_processes: Option<bool>,
- case_sensitive: Option<bool>,
- whole_word: Option<bool>,
- regex: Option<bool>,
- basic: Option<bool>,
- default_time_value: Option<StringOrNum>,
- time_delta: Option<StringOrNum>,
- autohide_time: Option<bool>,
- hide_time: Option<bool>,
- default_widget_type: Option<String>,
- default_widget_count: Option<u64>,
- expanded_on_startup: Option<bool>,
- use_old_network_legend: Option<bool>,
- hide_table_gap: Option<bool>,
- battery: Option<bool>,
- disable_click: Option<bool>,
- no_write: Option<bool>,
- /// For built-in colour palettes.
- color: Option<String>,
- mem_as_value: Option<bool>,
- tree: Option<bool>,
- show_table_scroll_position: Option<bool>,
- process_command: Option<bool>,
- disable_advanced_kill: Option<bool>,
- network_use_bytes: Option<bool>,
- network_use_log: Option<bool>,
- network_use_binary_prefix: Option<bool>,
- enable_gpu: Option<bool>,
- enable_cache_memory: Option<bool>,
- retention: Option<StringOrNum>,
-}
-
-#[derive(Clone, Debug, Default, Deserialize, Serialize)]
-pub struct ConfigColours {
- pub table_header_color: Option<Cow<'static, str>>,
- pub all_cpu_color: Option<Cow<'static, str>>,
- pub avg_cpu_color: Option<Cow<'static, str>>,
- pub cpu_core_colors: Option<Vec<Cow<'static, str>>>,
- pub ram_color: Option<Cow<'static, str>>,
- #[cfg(not(target_os = "windows"))]
- pub cache_color: Option<Cow<'static, str>>,
- pub swap_color: Option<Cow<'static, str>>,
- pub arc_color: Option<Cow<'static, str>>,
- pub gpu_core_colors: Option<Vec<Cow<'static, str>>>,
- pub rx_color: Option<Cow<'static, str>>,
- pub tx_color: Option<Cow<'static, str>>,
- pub rx_total_color: Option<Cow<'static, str>>, // These only affect basic mode.
- pub tx_total_color: Option<Cow<'static, str>>, // These only affect basic mode.
- pub border_color: Option<Cow<'static, str>>,
- pub highlighted_border_color: Option<Cow<'static, str>>,
- pub disabled_text_color: Option<Cow<'static, str>>,
- pub text_color: Option<Cow<'static, str>>,
- pub selected_text_color: Option<Cow<'static, str>>,
- pub selected_bg_color: Option<Cow<'static, str>>,
- pub widget_title_color: Option<Cow<'static, str>>,
- pub graph_color: Option<Cow<'static, str>>,
- pub high_battery_color: Option<Cow<'static, str>>,
- pub medium_battery_color: Option<Cow<'static, str>>,
- pub low_battery_color: Option<Cow<'static, str>>,
-}
-
-impl ConfigColours {
- /// Returns `true` if there is a [`ConfigColours`] that is empty or there isn't one at all.
- pub fn is_empty(&self) -> bool {
- if let Ok(serialized_string) = toml_edit::ser::to_string(self) {
- return serialized_string.is_empty();
- }
-
- true
- }
-}
-
-/// Workaround as per https://github.com/serde-rs/serde/issues/1030
-fn default_as_true() -> bool {
- true
-}
-
-#[derive(Clone, Debug, Default, Deserialize, Serialize)]
-pub struct IgnoreList {
- #[serde(default = "defau