diff --git a/src/rust/Cargo.lock b/src/rust/Cargo.lock index a5790f18..9da7edaf 100644 --- a/src/rust/Cargo.lock +++ b/src/rust/Cargo.lock @@ -1459,6 +1459,7 @@ dependencies = [ "anyhow", "crossterm 0.19.0", "lqos_bus", + "lqos_utils", "tokio", "tui", ] diff --git a/src/rust/lqos_utils/src/lib.rs b/src/rust/lqos_utils/src/lib.rs index f8b9ed4e..ce9631be 100644 --- a/src/rust/lqos_utils/src/lib.rs +++ b/src/rust/lqos_utils/src/lib.rs @@ -1,2 +1,3 @@ +mod commands; +pub mod packet_scale; mod string_table_enum; -mod commands; \ No newline at end of file diff --git a/src/rust/lqos_utils/src/packet_scale.rs b/src/rust/lqos_utils/src/packet_scale.rs new file mode 100644 index 00000000..783967e0 --- /dev/null +++ b/src/rust/lqos_utils/src/packet_scale.rs @@ -0,0 +1,23 @@ +pub fn scale_packets(n: u64) -> String { + if n > 1_000_000_000 { + format!("{:.2} gpps", n as f32 / 1_000_000_000.0) + } else if n > 1_000_000 { + format!("{:.2} mpps", n as f32 / 1_000_000.0) + } else if n > 1_000 { + format!("{:.2} kpps", n as f32 / 1_000.0) + } else { + format!("{n} pps") + } +} + +pub fn scale_bits(n: u64) -> String { + if n > 1_000_000_000 { + format!("{:.2} gbit/s", n as f32 / 1_000_000_000.0) + } else if n > 1_000_000 { + format!("{:.2} mbit/s", n as f32 / 1_000_000.0) + } else if n > 1_000 { + format!("{:.2} kbit/s", n as f32 / 1_000.0) + } else { + format!("{n} bit/s") + } +} diff --git a/src/rust/lqtop/Cargo.toml b/src/rust/lqtop/Cargo.toml index 3f251846..2dc2f8c5 100644 --- a/src/rust/lqtop/Cargo.toml +++ b/src/rust/lqtop/Cargo.toml @@ -6,6 +6,7 @@ edition = "2021" [dependencies] tokio = { version = "1.22", features = [ "rt", "macros", "net", "io-util", "time" ] } lqos_bus = { path = "../lqos_bus" } +lqos_utils = { path = "../lqos_utils" } anyhow = "1" tui = "0.19" crossterm = { version = "0.19", features = [ "serde" ] } diff --git a/src/rust/lqtop/src/main.rs b/src/rust/lqtop/src/main.rs index ec9e6b5a..efe23ee5 100644 --- a/src/rust/lqtop/src/main.rs +++ b/src/rust/lqtop/src/main.rs @@ -4,6 +4,7 @@ use crossterm::{ terminal::{enable_raw_mode, size}, }; use lqos_bus::{BusClient, BusRequest, BusResponse, IpStats}; +use lqos_utils::packet_scale::{scale_bits,scale_packets}; use std::{io, time::Duration}; use tui::{ backend::CrosstermBackend, @@ -75,30 +76,6 @@ fn draw_menu<'a>(is_connected: bool) -> Paragraph<'a> { para } -fn scale_packets(n: u64) -> String { - if n > 1_000_000_000 { - format!("{:.2} gpps", n as f32 / 1_000_000_000.0) - } else if n > 1_000_000 { - format!("{:.2} mpps", n as f32 / 1_000_000.0) - } else if n > 1_000 { - format!("{:.2} kpps", n as f32 / 1_000.0) - } else { - format!("{n} pps") - } -} - -fn scale_bits(n: u64) -> String { - if n > 1_000_000_000 { - format!("{:.2} gbit/s", n as f32 / 1_000_000_000.0) - } else if n > 1_000_000 { - format!("{:.2} mbit/s", n as f32 / 1_000_000.0) - } else if n > 1_000 { - format!("{:.2} kbit/s", n as f32 / 1_000.0) - } else { - format!("{n} bit/s") - } -} - fn draw_pps<'a>( packets_per_second: (u64, u64), bits_per_second: (u64, u64),