From bbdd7786ceb6a40ddfdca9c409997fccd6b7dfba Mon Sep 17 00:00:00 2001 From: ClementTsang Date: Fri, 28 Feb 2020 22:24:24 -0500 Subject: [PATCH] Optimized imports as per clion --- src/app.rs | 17 ++++---- src/app/data_farmer.rs | 3 +- src/app/data_harvester.rs | 1 + src/app/data_harvester/network.rs | 3 +- src/app/data_harvester/processes.rs | 11 ++++-- src/app/data_harvester/temperature.rs | 3 +- src/app/process_killer.rs | 13 ++++--- src/canvas.rs | 32 +++++++-------- src/canvas/canvas_colours.rs | 6 ++- src/canvas/canvas_colours/colour_utils.rs | 4 +- src/data_conversion.rs | 22 ++++++----- src/main.rs | 47 +++++++++++------------ tests/arg_rate_tests.rs | 3 +- 13 files changed, 91 insertions(+), 74 deletions(-) diff --git a/src/app.rs b/src/app.rs index b2313e08..ad5f9c5d 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,16 +1,17 @@ -pub mod data_harvester; -use data_harvester::{processes, temperature}; use std::time::Instant; -pub mod data_farmer; -use data_farmer::*; - -use crate::{canvas, constants, utils::error::Result}; -mod process_killer; - use unicode_segmentation::GraphemeCursor; use unicode_width::{UnicodeWidthChar, UnicodeWidthStr}; +use data_farmer::*; +use data_harvester::{processes, temperature}; + +use crate::{canvas, constants, utils::error::Result}; + +pub mod data_harvester; +pub mod data_farmer; +mod process_killer; + const MAX_SEARCH_LENGTH: usize = 200; #[derive(Debug, Clone, Copy)] diff --git a/src/app/data_farmer.rs b/src/app/data_farmer.rs index 9741c563..c32a62d3 100644 --- a/src/app/data_farmer.rs +++ b/src/app/data_farmer.rs @@ -1,4 +1,3 @@ -use crate::data_harvester::{cpu, disks, mem, network, processes, temperature, Data}; /// In charge of cleaning, processing, and managing data. I couldn't think of /// a better name for the file. Since I called data collection "harvesting", /// then this is the farmer I guess. @@ -16,6 +15,8 @@ use crate::data_harvester::{cpu, disks, mem, network, processes, temperature, Da use std::time::Instant; use std::vec::Vec; +use crate::data_harvester::{cpu, Data, disks, mem, network, processes, temperature}; + pub type TimeOffset = f64; pub type Value = f64; pub type JoinedDataPoints = (Value, Vec<(TimeOffset, Value)>); diff --git a/src/app/data_harvester.rs b/src/app/data_harvester.rs index bee29eb7..80d46a9e 100644 --- a/src/app/data_harvester.rs +++ b/src/app/data_harvester.rs @@ -1,6 +1,7 @@ //! This is the main file to house data collection functions. use std::{collections::HashMap, time::Instant}; + use sysinfo::{System, SystemExt}; pub mod cpu; diff --git a/src/app/data_harvester/network.rs b/src/app/data_harvester/network.rs index b4d32c29..9a40d5f7 100644 --- a/src/app/data_harvester/network.rs +++ b/src/app/data_harvester/network.rs @@ -1,7 +1,8 @@ +use std::time::Instant; + use futures::StreamExt; use heim::net; use heim::units::information::byte; -use std::time::Instant; use sysinfo::{NetworkExt, System, SystemExt}; #[derive(Default, Clone, Debug)] diff --git a/src/app/data_harvester/processes.rs b/src/app/data_harvester/processes.rs index 9a2bc548..7b56f32c 100644 --- a/src/app/data_harvester/processes.rs +++ b/src/app/data_harvester/processes.rs @@ -1,10 +1,13 @@ -use crate::utils::error; use std::{ - collections::{hash_map::RandomState, HashMap}, - process::Command, - time::Instant, + collections::{hash_map::RandomState, HashMap}, + process::Command, + time::Instant, }; + use sysinfo::{ProcessExt, ProcessorExt, System, SystemExt}; + +use crate::utils::error; + #[derive(Clone)] pub enum ProcessSorting { CPU, diff --git a/src/app/data_harvester/temperature.rs b/src/app/data_harvester/temperature.rs index 52500047..66d47e1e 100644 --- a/src/app/data_harvester/temperature.rs +++ b/src/app/data_harvester/temperature.rs @@ -1,6 +1,7 @@ +use std::cmp::Ordering; + use futures::StreamExt; use heim::units::thermodynamic_temperature; -use std::cmp::Ordering; use sysinfo::{ComponentExt, System, SystemExt}; #[derive(Default, Debug, Clone)] diff --git a/src/app/process_killer.rs b/src/app/process_killer.rs index 85b5b402..c2712874 100644 --- a/src/app/process_killer.rs +++ b/src/app/process_killer.rs @@ -1,17 +1,18 @@ -/// This file is meant to house (OS specific) implementations on how to kill processes. -use crate::utils::error::BottomError; use std::process::Command; // Copied from SO: https://stackoverflow.com/a/55231715 #[cfg(target_os = "windows")] use winapi::{ - shared::{minwindef::DWORD, ntdef::HANDLE}, - um::{ - processthreadsapi::{OpenProcess, TerminateProcess}, - winnt::{PROCESS_QUERY_INFORMATION, PROCESS_TERMINATE}, + shared::{minwindef::DWORD, ntdef::HANDLE}, + um::{ + processthreadsapi::{OpenProcess, TerminateProcess}, + winnt::{PROCESS_QUERY_INFORMATION, PROCESS_TERMINATE}, }, }; +/// This file is meant to house (OS specific) implementations on how to kill processes. +use crate::utils::error::BottomError; + #[cfg(target_os = "windows")] struct Process(HANDLE); diff --git a/src/canvas.rs b/src/canvas.rs index 38070a5e..69d51039 100644 --- a/src/canvas.rs +++ b/src/canvas.rs @@ -1,28 +1,30 @@ -use crate::{ - app::{self, data_harvester::processes::ProcessHarvest, WidgetPosition}, - constants::*, - data_conversion::{ConvertedCpuData, ConvertedProcessData}, - utils::error, -}; use std::cmp::max; use std::collections::HashMap; + use tui::{ - backend, - layout::{Alignment, Constraint, Direction, Layout, Rect}, - style::{Color, Style}, - terminal::Frame, - widgets::{Axis, Block, Borders, Chart, Dataset, Marker, Paragraph, Row, Table, Text, Widget}, - Terminal, + backend, + layout::{Alignment, Constraint, Direction, Layout, Rect}, + style::{Color, Style}, + Terminal, + terminal::Frame, + widgets::{Axis, Block, Borders, Chart, Dataset, Marker, Paragraph, Row, Table, Text, Widget}, }; use unicode_segmentation::UnicodeSegmentation; use unicode_width::UnicodeWidthStr; -mod canvas_colours; use canvas_colours::*; - -mod drawing_utils; use drawing_utils::*; +use crate::{ + app::{self, data_harvester::processes::ProcessHarvest, WidgetPosition}, + constants::*, + data_conversion::{ConvertedCpuData, ConvertedProcessData}, + utils::error, +}; + +mod canvas_colours; +mod drawing_utils; + // Headers const CPU_LEGEND_HEADER: [&str; 2] = ["CPU", "Use%"]; const CPU_SELECT_LEGEND_HEADER: [&str; 2] = ["CPU", "Show (Space)"]; diff --git a/src/canvas/canvas_colours.rs b/src/canvas/canvas_colours.rs index 949a90c5..27cc228f 100644 --- a/src/canvas/canvas_colours.rs +++ b/src/canvas/canvas_colours.rs @@ -1,9 +1,11 @@ -mod colour_utils; -use colour_utils::*; use tui::style::{Color, Modifier, Style}; +use colour_utils::*; + use crate::{constants::*, utils::error}; +mod colour_utils; + pub struct CanvasColours { pub currently_selected_text_colour: Color, pub currently_selected_bg_colour: Color, diff --git a/src/canvas/canvas_colours/colour_utils.rs b/src/canvas/canvas_colours/colour_utils.rs index c7e32a23..c7e2a1ae 100644 --- a/src/canvas/canvas_colours/colour_utils.rs +++ b/src/canvas/canvas_colours/colour_utils.rs @@ -1,7 +1,9 @@ -use crate::utils::{error, gen_util::*}; use std::collections::HashMap; + use tui::style::{Color, Style}; +use crate::utils::{error, gen_util::*}; + const GOLDEN_RATIO: f32 = 0.618_034; // 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; diff --git a/src/data_conversion.rs b/src/data_conversion.rs index bbd51ee5..c1dc2a17 100644 --- a/src/data_conversion.rs +++ b/src/data_conversion.rs @@ -1,18 +1,20 @@ //! This mainly concerns converting collected data into things that the canvas //! can actually handle. -use crate::{ - app::{ - data_farmer, - data_harvester::{self, processes::ProcessHarvest}, - App, - }, - constants, - utils::gen_util::{get_exact_byte_values, get_simple_byte_values}, -}; -use constants::*; use std::collections::HashMap; +use constants::*; + +use crate::{ + app::{ + App, + data_farmer, + data_harvester::{self, processes::ProcessHarvest}, + }, + constants, + utils::gen_util::{get_exact_byte_values, get_simple_byte_values}, +}; + #[derive(Default, Debug)] pub struct ConvertedNetworkData { pub rx: Vec<(f64, f64)>, diff --git a/src/main.rs b/src/main.rs index 47a63229..4e5ffc2b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,26 +1,13 @@ #![warn(rust_2018_idioms)] -#[macro_use] -extern crate log; #[macro_use] extern crate clap; #[macro_use] +extern crate futures; +#[macro_use] extern crate lazy_static; #[macro_use] -extern crate futures; - -use serde::Deserialize; - -use crossterm::{ - event::{ - poll, read, DisableMouseCapture, EnableMouseCapture, Event as CEvent, KeyCode, KeyEvent, - KeyModifiers, MouseEvent, - }, - execute, - style::Print, - terminal::LeaveAlternateScreen, - terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen}, -}; +extern crate log; use std::{ boxed::Box, @@ -30,8 +17,28 @@ use std::{ thread, time::{Duration, Instant}, }; + +use crossterm::{ + event::{ + DisableMouseCapture, EnableMouseCapture, Event as CEvent, KeyCode, KeyEvent, KeyModifiers, MouseEvent, + poll, read, + }, + execute, + style::Print, + terminal::{disable_raw_mode, enable_raw_mode, EnterAlternateScreen}, + terminal::LeaveAlternateScreen, +}; +use serde::Deserialize; use tui::{backend::CrosstermBackend, Terminal}; +use app::{ + App, + data_harvester::{self, processes::ProcessSorting}, +}; +use constants::*; +use data_conversion::*; +use utils::error::{self, BottomError}; + pub mod app; mod utils { pub mod error; @@ -42,14 +49,6 @@ mod canvas; mod constants; mod data_conversion; -use app::{ - data_harvester::{self, processes::ProcessSorting}, - App, -}; -use constants::*; -use data_conversion::*; -use utils::error::{self, BottomError}; - enum Event { KeyInput(I), MouseInput(J), diff --git a/tests/arg_rate_tests.rs b/tests/arg_rate_tests.rs index 206dbf50..35afb4d2 100644 --- a/tests/arg_rate_tests.rs +++ b/tests/arg_rate_tests.rs @@ -1,6 +1,7 @@ +use std::process::Command; + use assert_cmd::prelude::*; use predicates::prelude::*; -use std::process::Command; // These tests are mostly here just to ensure that invalid results will be caught when passing arguments...