summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorClement Tsang <34804052+ClementTsang@users.noreply.github.com>2024-01-01 10:19:52 +0000
committerGitHub <noreply@github.com>2024-01-01 05:19:52 -0500
commitecb6faa089271be48325eb7371a3a01a17683ba4 (patch)
tree4a4bfebdc2f27ecb13a0905c8f5eb9b7fb09ac3a /src
parent74792f0ddf0a184e17c98877d9f531282cdce92f (diff)
refactor: restructure canvas file folder structure (#1368)
* refactor: group together some canvas files * rename file * more shuffling around * fmt * more shuffling Going to flatten widgets in another PR. * some docs * naming * fmt
Diffstat (limited to 'src')
-rw-r--r--src/app.rs10
-rw-r--r--src/app/data_farmer.rs9
-rw-r--r--src/app/layout_manager.rs6
-rw-r--r--src/app/query.rs25
-rw-r--r--src/args.rs3
-rw-r--r--src/bin/main.rs21
-rw-r--r--src/canvas.rs8
-rw-r--r--src/canvas/dialogs/help_dialog.rs3
-rw-r--r--src/canvas/styling.rs (renamed from src/canvas/canvas_styling.rs)3
-rw-r--r--src/canvas/styling/colour_utils.rs (renamed from src/canvas/canvas_styling/colour_utils.rs)0
-rw-r--r--src/canvas/tui_widgets.rs6
-rw-r--r--src/canvas/tui_widgets/data_table.rs (renamed from src/components/data_table.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/column.rs (renamed from src/components/data_table/column.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/data_type.rs (renamed from src/components/data_table/data_type.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/draw.rs (renamed from src/components/data_table/draw.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/props.rs (renamed from src/components/data_table/props.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/sortable.rs (renamed from src/components/data_table/sortable.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/state.rs (renamed from src/components/data_table/state.rs)0
-rw-r--r--src/canvas/tui_widgets/data_table/styling.rs (renamed from src/components/data_table/styling.rs)2
-rw-r--r--src/canvas/tui_widgets/pipe_gauge.rs (renamed from src/components/tui_widget/pipe_gauge.rs)0
-rw-r--r--src/canvas/tui_widgets/time_chart.rs (renamed from src/components/tui_widget/time_chart.rs)0
-rw-r--r--src/canvas/tui_widgets/time_chart/canvas.rs (renamed from src/components/tui_widget/time_chart/canvas.rs)0
-rw-r--r--src/canvas/tui_widgets/time_graph.rs (renamed from src/components/time_graph.rs)4
-rw-r--r--src/canvas/widgets/basic_table_arrows.rs3
-rw-r--r--src/canvas/widgets/cpu_basic.rs6
-rw-r--r--src/canvas/widgets/cpu_graph.rs11
-rw-r--r--src/canvas/widgets/disk_table.rs6
-rw-r--r--src/canvas/widgets/mem_basic.rs4
-rw-r--r--src/canvas/widgets/mem_graph.rs7
-rw-r--r--src/canvas/widgets/network_graph.rs11
-rw-r--r--src/canvas/widgets/process_table.rs6
-rw-r--r--src/canvas/widgets/temperature_table.rs6
-rw-r--r--src/components.rs3
-rw-r--r--src/components/tui_widget.rs2
-rw-r--r--src/data_collection/disks/freebsd.rs7
-rw-r--r--src/data_collection/disks/other.rs3
-rw-r--r--src/data_collection/disks/unix/file_systems.rs3
-rw-r--r--src/data_collection/disks/unix/macos/io_kit/bindings.rs9
-rw-r--r--src/data_collection/disks/unix/macos/io_kit/io_object.rs14
-rw-r--r--src/data_collection/disks/windows.rs1
-rw-r--r--src/data_collection/nvidia.rs18
-rw-r--r--src/data_collection/processes.rs4
-rw-r--r--src/data_collection/processes/freebsd.rs9
-rw-r--r--src/data_collection/processes/linux.rs19
-rw-r--r--src/data_collection/processes/macos.rs4
-rw-r--r--src/data_collection/processes/unix/process_ext.rs3
-rw-r--r--src/data_collection/processes/windows.rs1
-rw-r--r--src/data_conversion.rs14
-rw-r--r--src/lib.rs4
-rw-r--r--src/options.rs8
-rw-r--r--src/options/layout_options.rs3
-rw-r--r--src/options/process_columns.rs3
-rw-r--r--src/widgets/cpu_graph.rs11
-rw-r--r--src/widgets/disk_table.rs10
-rw-r--r--src/widgets/process_table.rs10
-rw-r--r--src/widgets/process_table/proc_widget_column.rs2
-rw-r--r--src/widgets/process_table/proc_widget_data.rs6
-rw-r--r--src/widgets/process_table/sort_table.rs2
-rw-r--r--src/widgets/temperature_table.rs10
59 files changed, 190 insertions, 153 deletions
diff --git a/src/app.rs b/src/app.rs
index ddbc05af..eea35288 100644
--- a/src/app.rs
+++ b/src/app.rs
@@ -15,12 +15,12 @@ use crate::{
constants,
data_collection::temperature,
data_conversion::ConvertedData,
- utils::error::{BottomError, Result},
- Pid,
-};
-use crate::{
- utils::data_units::DataUnit,
+ utils::{
+ data_units::DataUnit,
+ error::{BottomError, Result},
+ },
widgets::{ProcWidgetColumn, ProcWidgetMode},
+ Pid,
};
pub mod data_farmer;
diff --git a/src/app/data_farmer.rs b/src/app/data_farmer.rs
index 4a2e09fe..720092db 100644
--- a/src/app/data_farmer.rs
+++ b/src/app/data_farmer.rs
@@ -13,7 +13,6 @@
//! memory usage and higher CPU usage - you will be trying to process more and
//! more points as this is used!
-use crate::data_collection::processes::ProcessHarvest;
use std::{collections::BTreeMap, time::Instant, vec::Vec};
use hashbrown::HashMap;
@@ -21,9 +20,8 @@ use hashbrown::HashMap;
#[cfg(feature = "battery")]
use crate::data_collection::batteries;
use crate::{
- data_collection::{cpu, disks, memory, network, temperature, Data},
- utils::data_prefixes::*,
- utils::gen_util::get_decimal_bytes,
+ data_collection::{cpu, disks, memory, network, processes::ProcessHarvest, temperature, Data},
+ utils::{data_prefixes::*, gen_util::get_decimal_bytes},
Pid,
};
@@ -370,9 +368,10 @@ impl DataCollection {
let io_device = {
#[cfg(target_os = "macos")]
{
- use regex::Regex;
use std::sync::OnceLock;
+ use regex::Regex;
+
// Must trim one level further for macOS!
static DISK_REGEX: OnceLock<Regex> = OnceLock::new();
if let Some(new_name) = DISK_REGEX
diff --git a/src/app/layout_manager.rs b/src/app/layout_manager.rs
index f5ed8eaa..ca353f52 100644
--- a/src/app/layout_manager.rs
+++ b/src/app/layout_manager.rs
@@ -1,7 +1,9 @@
use std::collections::BTreeMap;
-use crate::constants::DEFAULT_WIDGET_ID;
-use crate::error::{BottomError, Result};
+use crate::{
+ constants::DEFAULT_WIDGET_ID,
+ error::{BottomError, Result},
+};
/// Represents a more usable representation of the layout, derived from the
/// config.
diff --git a/src/app/query.rs b/src/app/query.rs
index 6f1a2858..5737cbc7 100644
--- a/src/app/query.rs
+++ b/src/app/query.rs
@@ -1,16 +1,23 @@
-use std::fmt::{Debug, Formatter};
-use std::time::Duration;
-use std::{borrow::Cow, collections::VecDeque};
+use std::{
+ borrow::Cow,
+ collections::VecDeque,
+ fmt::{Debug, Formatter},
+ time::Duration,
+};
use humantime::parse_duration;
use regex::Regex;
-use crate::data_collection::processes::ProcessHarvest;
-use crate::multi_eq_ignore_ascii_case;
-use crate::utils::data_prefixes::*;
-use crate::utils::error::{
- BottomError::{self, QueryError},
- Result,
+use crate::{
+ data_collection::processes::ProcessHarvest,
+ multi_eq_ignore_ascii_case,
+ utils::{
+ data_prefixes::*,
+ error::{
+ BottomError::{self, QueryError},
+ Result,
+ },
+ },
};
const DELIMITER_LIST: [char; 6] = ['=', '>', '<', '(', ')', '\"'];
diff --git a/src/args.rs b/src/args.rs
index 5da34f85..2c524da8 100644
--- a/src/args.rs
+++ b/src/args.rs
@@ -1,5 +1,4 @@
-use clap::builder::PossibleValuesParser;
-use clap::*;
+use clap::{builder::PossibleValuesParser, *};
const TEMPLATE: &str = "\
{name} {version}
diff --git a/src/bin/main.rs b/src/bin/main.rs
index 5fc02bfe..a5218efe 100644
--- a/src/bin/main.rs
+++ b/src/bin/main.rs
@@ -13,16 +13,12 @@ use std::{
};
use anyhow::{Context, Result};
-use crossterm::{
- event::{EnableBracketedPaste, EnableMouseCapture},
- execute,
- terminal::{enable_raw_mode, EnterAlternateScreen},
-};
-use tui::{backend::CrosstermBackend, Terminal};
-
use bottom::{
args,
- canvas::{self, canvas_styling::CanvasStyling},
+ canvas::{
+ styling::CanvasStyling,
+ {self},
+ },
check_if_terminal, cleanup_terminal, create_collection_thread, create_input_thread,
create_or_get_config,
data_conversion::*,
@@ -30,6 +26,12 @@ use bottom::{
options::*,
panic_hook, read_config, try_drawing, update_data, BottomEvent,
};
+use crossterm::{
+ event::{EnableBracketedPaste, EnableMouseCapture},
+ execute,
+ terminal::{enable_raw_mode, EnterAlternateScreen},
+};
+use tui::{backend::CrosstermBackend, Terminal};
// Used for heap allocation debugging purposes.
// #[global_allocator]
@@ -151,9 +153,10 @@ fn main() -> Result<()> {
let _stderr_fd = {
// A really ugly band-aid to suppress stderr warnings on FreeBSD due to sysinfo.
// For more information, see https://github.com/ClementTsang/bottom/issues/798.
- 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.rs b/src/canvas.rs
index ef5c9ace..8960f0a0 100644
--- a/src/canvas.rs
+++ b/src/canvas.rs
@@ -1,7 +1,7 @@
use std::str::FromStr;
-use canvas_styling::*;
use itertools::izip;
+use styling::*;
use tui::{
backend::Backend,
layout::{Constraint, Direction, Layout, Rect},
@@ -16,13 +16,13 @@ use crate::{
App,
},
constants::*,
- utils::error,
- utils::error::BottomError,
+ utils::{error, error::BottomError},
};
-pub mod canvas_styling;
mod dialogs;
mod drawing_utils;
+pub mod styling;
+pub mod tui_widgets;
mod widgets;
#[derive(Debug)]
diff --git a/src/canvas/dialogs/help_dialog.rs b/src/canvas/dialogs/help_dialog.rs
index 39bf2575..082aeb6e 100644
--- a/src/canvas/dialogs/help_dialog.rs
+++ b/src/canvas/dialogs/help_dialog.rs
@@ -3,8 +3,7 @@ use std::cmp::{max, min};
use tui::{
layout::{Alignment, Rect},
terminal::Frame,
- text::Line,
- text::Span,
+ text::{Line, Span},
widgets::{Block, Borders, Paragraph, Wrap},
};
use unicode_width::UnicodeWidthStr;
diff --git a/src/canvas/canvas_styling.rs b/src/canvas/styling.rs
index 93169f37..efd7638f 100644
--- a/src/canvas/canvas_styling.rs
+++ b/src/canvas/styling.rs
@@ -235,9 +235,10 @@ impl CanvasStyling {
#[cfg(test)]
mod test {
+ use tui::style::{Color, Style};
+
use super::{CanvasStyling, ColourScheme};
use crate::Config;
- use tui::style::{Color, Style};
#[test]
fn default_selected_colour_works() {
diff --git a/src/canvas/canvas_styling/colour_utils.rs b/src/canvas/styling/colour_utils.rs
index 5c39be74..5c39be74 100644
--- a/src/canvas/canvas_styling/colour_utils.rs
+++ b/src/canvas/styling/colour_utils.rs
diff --git a/src/canvas/tui_widgets.rs b/src/canvas/tui_widgets.rs
new file mode 100644
index 00000000..8355c7d1
--- /dev/null
+++ b/src/canvas/tui_widgets.rs
@@ -0,0 +1,6 @@
+//! Cstom ratatui widgets used by the rest of bottom.
+
+pub mod data_table;
+pub mod pipe_gauge;
+pub mod time_chart;
+pub mod time_graph;
diff --git a/src/components/data_table.rs b/src/canvas/tui_widgets/data_table.rs
index 4ae23d1d..4ae23d1d 100644
--- a/src/components/data_table.rs
+++ b/src/canvas/tui_widgets/data_table.rs
diff --git a/src/components/data_table/column.rs b/src/canvas/tui_widgets/data_table/column.rs
index e7b82b29..e7b82b29 100644
--- a/src/components/data_table/column.rs
+++ b/src/canvas/tui_widgets/data_table/column.rs
diff --git a/src/components/data_table/data_type.rs b/src/canvas/tui_widgets/data_table/data_type.rs
index bbfceb8c..bbfceb8c 100644
--- a/src/components/data_table/data_type.rs
+++ b/src/canvas/tui_widgets/data_table/data_type.rs
diff --git a/src/components/data_table/draw.rs b/src/canvas/tui_widgets/data_table/draw.rs
index 15faae22..15faae22 100644
--- a/src/components/data_table/draw.rs
+++ b/src/canvas/tui_widgets/data_table/draw.rs
diff --git a/src/components/data_table/props.rs b/src/canvas/tui_widgets/data_table/props.rs
index 66d3a4f0..66d3a4f0 100644
--- a/src/components/data_table/props.rs
+++ b/src/canvas/tui_widgets/data_table/props.rs
diff --git a/src/components/data_table/sortable.rs b/src/canvas/tui_widgets/data_table/sortable.rs
index 3a3de1fc..3a3de1fc 100644
--- a/src/components/data_table/sortable.rs
+++ b/src/canvas/tui_widgets/data_table/sortable.rs
diff --git a/src/components/data_table/state.rs b/src/canvas/tui_widgets/data_table/state.rs
index 0e2ed450..0e2ed450 100644
--- a/src/components/data_table/state.rs
+++ b/src/canvas/tui_widgets/data_table/state.rs
diff --git a/src/components/data_table/styling.rs b/src/canvas/tui_widgets/data_table/styling.rs
index ddda312a..80ce2b70 100644
--- a/src/components/data_table/styling.rs
+++ b/src/canvas/tui_widgets/data_table/styling.rs
@@ -1,6 +1,6 @@
use tui::style::Style;
-use crate::canvas::canvas_styling::CanvasStyling;
+use crate::canvas::styling::CanvasStyling;
#[derive(Default)]
pub struct DataTableStyling {
diff --git a/src/components/tui_widget/pipe_gauge.rs b/src/canvas/tui_widgets/pipe_gauge.rs
index 08aa4ca2..08aa4ca2 100644
--- a/src/components/tui_widget/pipe_gauge.rs
+++ b/src/canvas/tui_widgets/pipe_gauge.rs
diff --git a/src/components/tui_widget/time_chart.rs b/src/canvas/tui_widgets/time_chart.rs
index 403ef507..403ef507 100644
--- a/src/components/tui_widget/time_chart.rs
+++ b/src/canvas/tui_widgets/time_chart.rs
diff --git a/src/components/tui_widget/time_chart/canvas.rs b/src/canvas/tui_widgets/time_chart/canvas.rs
index b6cc41c1..b6cc41c1 100644
--- a/src/components/tui_widget/time_chart/canvas.rs
+++ b/src/canvas/tui_widgets/time_chart/canvas.rs
diff --git a/src/components/time_graph.rs b/src/canvas/tui_widgets/time_graph.rs
index 63d7330b..2bbcd652 100644
--- a/src/components/time_graph.rs
+++ b/src/canvas/tui_widgets/time_graph.rs
@@ -11,7 +11,7 @@ use tui::{
};
use unicode_segmentation::UnicodeSegmentation;
-use super::tui_widget::time_chart::{Axis, Dataset, Point, TimeChart, DEFAULT_LEGEND_CONSTRAINTS};
+use super::time_chart::{Axis, Dataset, Point, TimeChart, DEFAULT_LEGEND_CONSTRAINTS};
/// Represents the data required by the [`TimeGraph`].
pub struct GraphData<'a> {
@@ -183,7 +183,7 @@ mod test {
};
use super::TimeGraph;
- use crate::components::tui_widget::time_chart::Axis;
+ use crate::canvas::tui_widgets::time_chart::Axis;
const Y_LABELS: [Cow<'static, str>; 3] = [
Cow::Borrowed("0%"),
diff --git a/src/canvas/widgets/basic_table_arrows.rs b/src/canvas/widgets/basic_table_arrows.rs
index 352c7f1e..9f7baba7 100644
--- a/src/canvas/widgets/basic_table_arrows.rs
+++ b/src/canvas/widgets/basic_table_arrows.rs
@@ -1,8 +1,7 @@
use tui::{
layout::{Alignment, Constraint, Direction, Layout, Rect},
terminal::Frame,
- text::Line,
- text::Span,
+ text::{Line, Span},
widgets::{Block, Paragraph},
};
diff --git a/src/canvas/widgets/cpu_basic.rs b/src/canvas/widgets/cpu_basic.rs
index e04d497f..a2a67c4d 100644
--- a/src/canvas/widgets/cpu_basic.rs
+++ b/src/canvas/widgets/cpu_basic.rs
@@ -8,8 +8,10 @@ use tui::{
use crate::{
app::App,
- canvas::Painter,
- components::tui_widget::pipe_gauge::{LabelLimit, PipeGauge},
+ canvas::{
+ tui_widgets::pipe_gauge::{LabelLimit, PipeGauge},
+ Painter,
+ },
constants::*,
data_collection::cpu::CpuDataType,
data_conversion::CpuWidgetData,
diff --git a/src/canvas/widgets/cpu_graph.rs b/src/canvas/widgets/cpu_graph.rs
index 9e9dab2f..7f4e757e 100644
--- a/src/canvas/widgets/cpu_graph.rs
+++ b/src/canvas/widgets/cpu_graph.rs
@@ -8,10 +8,13 @@ use tui::{
use crate::{
app::{layout_manager::WidgetDirection, App},
- canvas::{drawing_utils::should_hide_x_label, Painter},
- components::{
- data_table::{DrawInfo, SelectionState},
- time_graph::{GraphData, TimeGraph},
+ canvas::{
+ drawing_utils::should_hide_x_label,
+ tui_widgets::{
+ data_table::{DrawInfo, SelectionState},
+ time_graph::{GraphData, TimeGraph},
+ },
+ Painter,
},
data_conversion::CpuWidgetData,
widgets::CpuWidgetState,
diff --git a/src/canvas/widgets/disk_table.rs b/src/canvas/widgets/disk_table.rs
index cfea61b6..5b6b2619 100644
--- a/src/canvas/widgets/disk_table.rs
+++ b/src/canvas/widgets/disk_table.rs
@@ -2,8 +2,10 @@ use tui::{layout::Rect, terminal::Frame};
use crate::{
app::{self},
- canvas::Painter,
- components::data_table::{DrawInfo, SelectionState},
+ canvas::{
+ tui_widgets::data_table::{DrawInfo, SelectionState},
+ Painter,
+ },
};
impl Painter {
diff --git a/src/canvas/widgets/mem_basic.rs b/src/canvas/widgets/mem_basic.rs
index d24ae22e..e8ae71b7 100644
--- a/src/canvas/widgets/mem_basic.rs
+++ b/src/canvas/widgets/mem_basic.rs
@@ -5,7 +5,9 @@ use tui::{
};
use crate::{
- app::App, canvas::Painter, components::tui_widget::pipe_gauge::PipeGauge, constants::*,
+ app::App,
+ canvas::{tui_widgets::pipe_gauge::PipeGauge, Painter},
+ constants::*,
};
impl Painter {
diff --git a/src/canvas/widgets/mem_graph.rs b/src/canvas/widgets/mem_graph.rs
index 42e05e02..819c2956 100644
--- a/src/canvas/widgets/mem_graph.rs
+++ b/src/canvas/widgets/mem_graph.rs
@@ -8,8 +8,11 @@ use tui::{
use crate::{
app::App,
- canvas::{drawing_utils::should_hide_x_label, Painter},
- components::time_graph::{GraphData, TimeGraph},
+ canvas::{
+ drawing_utils::should_hide_x_label,
+ tui_widgets::time_graph::{GraphData, TimeGraph},
+ Painter,
+ },
};
impl Painter {
diff --git a/src/canvas/widgets/network_graph.rs b/src/canvas/widgets/network_graph.rs
index 8f0885fa..7c8ce913 100644
--- a/src/canvas/widgets/network_graph.rs
+++ b/src/canvas/widgets/network_graph.rs
@@ -8,10 +8,13 @@ use tui::{
use crate::{
app::{App, AxisScaling},
- canvas::{drawing_utils::should_hide_x_label, Painter},
- components::{
- time_graph::{GraphData, TimeGraph},
- tui_widget::time_chart::Point,
+ canvas::{
+ drawing_utils::should_hide_x_label,
+ tui_widgets::{
+ time_chart::Point,
+ time_graph::{GraphData, TimeGraph},
+ },
+ Painter,
},
utils::{data_prefixes::*, data_units::DataUnit, gen_util::partial_ordering},
};
diff --git a/src/canvas/widgets/process_table.rs b/src/canvas/widgets/process_table.rs
index 8aef6bea..e15f3f09 100644
--- a/src/canvas/widgets/process_table.rs
+++ b/src/canvas/widgets/process_table.rs
@@ -9,8 +9,10 @@ use unicode_segmentation::UnicodeSegmentation;
use crate::{
app::{App, AppSearchState},
- canvas::Painter,
- components::data_table::{DrawInfo, SelectionState},
+ canvas::{
+ tui_widgets::data_table::{DrawInfo, SelectionState},
+ Painter,
+ },
constants::*,
};
diff --git a/src/canvas/widgets/temperature_table.rs b/src/canvas/widgets/temperature_table.rs
index 6c0475a4..9be34ef1 100644
--- a/src/canvas/widgets/temperature_table.rs
+++ b/src/canvas/widgets/temperature_table.rs
@@ -2,8 +2,10 @@ use tui::{layout::Rect, terminal::Frame};
use crate::{
app,