clippy clean up multiple files
This commit is contained in:
parent
7cd6a6e0a1
commit
1e248306a6
@ -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
|
||||||
|
|||||||
@ -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)]
|
||||||
|
|||||||
@ -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;
|
||||||
@ -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]);
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user