clippy clean up multiple files

This commit is contained in:
jasonwitty 2025-08-11 23:27:18 -07:00
parent 7cd6a6e0a1
commit 1e248306a6
8 changed files with 42 additions and 30 deletions

View File

@ -26,8 +26,8 @@ use crate::ui::cpu::{
per_core_handle_key, per_core_handle_mouse, per_core_handle_scrollbar_mouse, PerCoreScrollDrag, per_core_handle_key, per_core_handle_mouse, per_core_handle_scrollbar_mouse, PerCoreScrollDrag,
}; };
use crate::ui::{ use crate::ui::{
disks::draw_disks, header::draw_header, mem::draw_mem, net::draw_net_spark, disks::draw_disks, gpu::draw_gpu, header::draw_header, mem::draw_mem, net::draw_net_spark,
processes::draw_top_processes, swap::draw_swap, gpu::draw_gpu, processes::draw_top_processes, swap::draw_swap,
}; };
use crate::ws::{connect, request_metrics}; use crate::ws::{connect, request_metrics};
@ -106,7 +106,10 @@ impl App {
while event::poll(Duration::from_millis(10))? { while event::poll(Duration::from_millis(10))? {
match event::read()? { match event::read()? {
Event::Key(k) => { Event::Key(k) => {
if matches!(k.code, KeyCode::Char('q') | KeyCode::Char('Q') | KeyCode::Esc) { if matches!(
k.code,
KeyCode::Char('q') | KeyCode::Char('Q') | KeyCode::Esc
) {
self.should_quit = true; self.should_quit = true;
} }
// Per-core scroll via keys (Up/Down/PageUp/PageDown/Home/End) // Per-core scroll via keys (Up/Down/PageUp/PageDown/Home/End)
@ -135,7 +138,11 @@ impl App {
.as_ref() .as_ref()
.map(|mm| mm.cpu_per_core.len()) .map(|mm| mm.cpu_per_core.len())
.unwrap_or(0); .unwrap_or(0);
per_core_clamp(&mut self.per_core_scroll, total_rows, content.height as usize); per_core_clamp(
&mut self.per_core_scroll,
total_rows,
content.height as usize,
);
} }
Event::Mouse(m) => { Event::Mouse(m) => {
// Layout to get areas // Layout to get areas
@ -305,9 +312,9 @@ impl App {
let left_stack = ratatui::layout::Layout::default() let left_stack = ratatui::layout::Layout::default()
.direction(Direction::Vertical) .direction(Direction::Vertical)
.constraints([ .constraints([
Constraint::Min(7), // Disks grow Constraint::Min(7), // Disks grow
Constraint::Length(3), // Download Constraint::Length(3), // Download
Constraint::Length(3), // Upload Constraint::Length(3), // Upload
]) ])
.split(bottom_lr[0]); .split(bottom_lr[0]);

View File

@ -30,7 +30,6 @@ pub struct GpuMetrics {
pub utilization_gpu_pct: u32, pub utilization_gpu_pct: u32,
pub mem_used_bytes: u64, pub mem_used_bytes: u64,
pub mem_total_bytes: u64, pub mem_total_bytes: u64,
// pub vendor: Option<String>,
} }
#[derive(Debug, Deserialize, Clone)] #[derive(Debug, Deserialize, Clone)]

View File

@ -1,5 +1,6 @@
//! CPU average sparkline + per-core mini bars. //! CPU average sparkline + per-core mini bars.
use crossterm::event::{KeyCode, KeyEvent, MouseButton, MouseEvent, MouseEventKind};
use ratatui::style::Modifier; use ratatui::style::Modifier;
use ratatui::{ use ratatui::{
layout::{Constraint, Direction, Layout, Rect}, layout::{Constraint, Direction, Layout, Rect},
@ -7,15 +8,14 @@ use ratatui::{
text::{Line, Span}, text::{Line, Span},
widgets::{Block, Borders, Paragraph, Sparkline}, widgets::{Block, Borders, Paragraph, Sparkline},
}; };
use crossterm::event::{KeyCode, KeyEvent, MouseButton, MouseEvent, MouseEventKind}; // + MouseButton
use crate::history::PerCoreHistory; use crate::history::PerCoreHistory;
use crate::types::Metrics; use crate::types::Metrics;
/// Subtle grey theme for the custom scrollbar /// Subtle grey theme for the custom scrollbar
const SB_ARROW: Color = Color::Rgb(170,170,180); const SB_ARROW: Color = Color::Rgb(170, 170, 180);
const SB_TRACK: Color = Color::Rgb(170,170,180); const SB_TRACK: Color = Color::Rgb(170, 170, 180);
const SB_THUMB: Color = Color::Rgb(170,170,180); const SB_THUMB: Color = Color::Rgb(170, 170, 180);
/// State for dragging the scrollbar thumb /// State for dragging the scrollbar thumb
#[derive(Clone, Copy, Debug, Default)] #[derive(Clone, Copy, Debug, Default)]
@ -100,7 +100,7 @@ pub fn per_core_handle_scrollbar_mouse(
drag: &mut Option<PerCoreScrollDrag>, drag: &mut Option<PerCoreScrollDrag>,
mouse: MouseEvent, mouse: MouseEvent,
per_core_area: Rect, per_core_area: Rect,
total_rows: usize total_rows: usize,
) { ) {
// Geometry // Geometry
let inner = Rect { let inner = Rect {
@ -188,7 +188,8 @@ pub fn per_core_handle_scrollbar_mouse(
if d.active { if d.active {
let dy = (mouse.row as i32) - (d.start_y as i32); let dy = (mouse.row as i32) - (d.start_y as i32);
let new_top = (d.start_top as i32 + dy) let new_top = (d.start_top as i32 + dy)
.clamp(0, (track.saturating_sub(thumb_len)) as i32) as usize; .clamp(0, (track.saturating_sub(thumb_len)) as i32)
as usize;
// Inverse mapping top -> offset // Inverse mapping top -> offset
if track > thumb_len { if track > thumb_len {
let denom = track - thumb_len; let denom = track - thumb_len;
@ -322,11 +323,11 @@ pub fn draw_per_core_bars(
let trend = if curr > older + 0.2 { let trend = if curr > older + 0.2 {
"" ""
} else if curr + 0.2 < older { } else if curr + 0.2 < older {
"" ""
} else { } else {
"" ""
}; };
let fg = match curr { let fg = match curr {
x if x < 25.0 => Color::Green, x if x < 25.0 => Color::Green,
@ -347,8 +348,7 @@ pub fn draw_per_core_bars(
let spark = Sparkline::default() let spark = Sparkline::default()
.data(&hist) .data(&hist)
.max(100) .max(100)
.style(Style::default() .style(Style::default().fg(fg));
.fg(fg));
f.render_widget(spark, hchunks[0]); f.render_widget(spark, hchunks[0]);

View File

@ -97,8 +97,8 @@ pub fn draw_gpu(f: &mut ratatui::Frame<'_>, area: Rect, m: Option<&Metrics>) {
.ratio(util as f64 / 100.0); .ratio(util as f64 / 100.0);
f.render_widget(util_gauge, util_cols[0]); f.render_widget(util_gauge, util_cols[0]);
f.render_widget( f.render_widget(
Paragraph::new(Span::raw(format!("util: {util}%"))) Paragraph::new(Span::raw(format!("util: {util}%")))
.style(Style::default().fg(Color::Gray)), .style(Style::default().fg(Color::Gray)),
util_cols[1], util_cols[1],
); );

View File

@ -3,7 +3,7 @@
use ratatui::{ use ratatui::{
layout::Rect, layout::Rect,
style::{Color, Style}, style::{Color, Style},
widgets::{Block, Borders, Sparkline} widgets::{Block, Borders, Sparkline},
}; };
use std::collections::VecDeque; use std::collections::VecDeque;
@ -12,7 +12,7 @@ pub fn draw_net_spark(
area: Rect, area: Rect,
title: &str, title: &str,
hist: &VecDeque<u64>, hist: &VecDeque<u64>,
color: Color color: Color,
) { ) {
let max_points = area.width.saturating_sub(2) as usize; let max_points = area.width.saturating_sub(2) as usize;
let start = hist.len().saturating_sub(max_points); let start = hist.len().saturating_sub(max_points);

View File

@ -1,16 +1,16 @@
//! socktop agent entrypoint: sets up sysinfo handles, launches a sampler, //! socktop agent entrypoint: sets up sysinfo handles, launches a sampler,
//! and serves a WebSocket endpoint at /ws. //! and serves a WebSocket endpoint at /ws.
mod gpu;
mod metrics; mod metrics;
mod sampler; mod sampler;
mod state; mod state;
mod types; mod types;
mod ws; mod ws;
mod gpu;
use axum::{routing::get, Router}; use axum::{routing::get, Router};
use std::{ net::SocketAddr, sync::atomic::AtomicUsize, sync::Arc, time::Duration, use std::{net::SocketAddr, sync::atomic::AtomicUsize, sync::Arc, time::Duration};
};
use sysinfo::{ use sysinfo::{
Components, CpuRefreshKind, Disks, MemoryRefreshKind, Networks, ProcessRefreshKind, Components, CpuRefreshKind, Disks, MemoryRefreshKind, Networks, ProcessRefreshKind,
RefreshKind, System, RefreshKind, System,

View File

@ -41,7 +41,11 @@ pub async fn collect_metrics(state: &AppState) -> Metrics {
components.refresh(true); components.refresh(true);
components.iter().find_map(|c| { components.iter().find_map(|c| {
let l = c.label().to_ascii_lowercase(); let l = c.label().to_ascii_lowercase();
if l.contains("cpu") || l.contains("package") || l.contains("tctl") || l.contains("tdie") { if l.contains("cpu")
|| l.contains("package")
|| l.contains("tctl")
|| l.contains("tdie")
{
c.temperature() c.temperature()
} else { } else {
None None

View File

@ -45,7 +45,9 @@ impl AppState {
last_json: Arc::new(RwLock::new(String::new())), last_json: Arc::new(RwLock::new(String::new())),
client_count: Arc::new(AtomicUsize::new(0)), client_count: Arc::new(AtomicUsize::new(0)),
wake_sampler: Arc::new(Notify::new()), wake_sampler: Arc::new(Notify::new()),
auth_token: std::env::var("SOCKTOP_TOKEN").ok().filter(|s| !s.is_empty()), auth_token: std::env::var("SOCKTOP_TOKEN")
.ok()
.filter(|s| !s.is_empty()),
} }
} }
} }