11#![ allow( unused) ]
2- use lazy_static :: lazy_static ;
2+ #! [ allow ( clippy :: cast_precision_loss , clippy :: cast_possible_truncation , clippy :: cast_sign_loss , clippy :: similar_names , clippy :: many_single_char_names ) ]
33use once_cell:: sync:: OnceCell ;
44use regex:: Regex ;
55use std:: collections:: HashMap ;
@@ -14,7 +14,7 @@ use std::net::{Shutdown, ToSocketAddrs};
1414use std:: process:: Command ;
1515use std:: str;
1616use std:: sync:: Arc ;
17- use std:: sync:: Mutex ;
17+ use std:: sync:: { LazyLock , Mutex } ;
1818use std:: thread;
1919use std:: time:: { Duration , Instant , SystemTime , UNIX_EPOCH } ;
2020
@@ -54,10 +54,8 @@ pub fn get_loadavg() -> (f64, f64, f64) {
5454 . unwrap ( )
5555}
5656
57- static MEMORY_REGEX : & str = r#"^(?P<key>\S*):\s*(?P<value>\d*)\s*kB"# ;
58- lazy_static ! {
59- static ref MEMORY_REGEX_RE : Regex = Regex :: new( MEMORY_REGEX ) . unwrap( ) ;
60- }
57+ static MEMORY_REGEX : & str = r"^(?P<key>\S*):\s*(?P<value>\d*)\s*kB" ;
58+ static MEMORY_REGEX_RE : LazyLock < Regex > = LazyLock :: new ( || Regex :: new ( MEMORY_REGEX ) . unwrap ( ) ) ;
6159pub fn get_memory ( ) -> ( u64 , u64 , u64 , u64 ) {
6260 let file = File :: open ( "/proc/meminfo" ) . unwrap ( ) ;
6361 let buf_reader = BufReader :: new ( file) ;
@@ -66,7 +64,7 @@ pub fn get_memory() -> (u64, u64, u64, u64) {
6664 let l = line. unwrap ( ) ;
6765 if let Some ( caps) = MEMORY_REGEX_RE . captures ( & l) {
6866 res_dict. insert ( caps[ "key" ] . to_string ( ) , caps[ "value" ] . parse :: < u64 > ( ) . unwrap ( ) ) ;
69- } ;
67+ }
7068 }
7169
7270 let mem_total = res_dict[ "MemTotal" ] ;
@@ -100,10 +98,8 @@ pub fn tupd() -> (u32, u32, u32, u32) {
10098}
10199
102100static TRAFFIC_REGEX : & str =
103- r#"([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)"# ;
104- lazy_static ! {
105- static ref TRAFFIC_REGEX_RE : Regex = Regex :: new( TRAFFIC_REGEX ) . unwrap( ) ;
106- }
101+ r"([^\s]+):[\s]{0,}(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)" ;
102+ static TRAFFIC_REGEX_RE : LazyLock < Regex > = LazyLock :: new ( || Regex :: new ( TRAFFIC_REGEX ) . unwrap ( ) ) ;
107103pub fn get_sys_traffic ( args : & Args ) -> ( u64 , u64 ) {
108104 let ( mut network_in, mut network_out) = ( 0 , 0 ) ;
109105 let file = File :: open ( "/proc/net/dev" ) . unwrap ( ) ;
@@ -142,7 +138,7 @@ pub fn get_hdd(stat: &mut StatRequest) {
142138 . stdout ;
143139
144140 let _ = str:: from_utf8 ( a) . map ( |content| {
145- let vs = content. trim ( ) . split ( '\n' ) . collect :: < Vec < & str > > ( ) . to_vec ( ) ;
141+ let vs = content. lines ( ) . collect :: < Vec < & str > > ( ) ;
146142
147143 for ( idx, s) in vs. iter ( ) . enumerate ( ) {
148144 // header
@@ -181,9 +177,7 @@ pub struct NetSpeed {
181177 pub avgtx : u64 ,
182178}
183179
184- lazy_static ! {
185- pub static ref G_NET_SPEED : Arc <Mutex <NetSpeed >> = Arc :: new( Default :: default ( ) ) ;
186- }
180+ pub static G_NET_SPEED : LazyLock < Arc < Mutex < NetSpeed > > > = LazyLock :: new ( || Arc :: new ( Mutex :: default ( ) ) ) ;
187181
188182#[ allow( unused) ]
189183pub fn start_net_speed_collect_t ( args : & Args ) {
@@ -226,9 +220,7 @@ pub fn start_net_speed_collect_t(args: &Args) {
226220 } ) ;
227221}
228222
229- lazy_static ! {
230- pub static ref G_CPU_PERCENT : Arc <Mutex <f64 >> = Arc :: new( Default :: default ( ) ) ;
231- }
223+ pub static G_CPU_PERCENT : LazyLock < Arc < Mutex < f64 > > > = LazyLock :: new ( || Arc :: new ( Mutex :: default ( ) ) ) ;
232224#[ allow( unused) ]
233225pub fn start_cpu_percent_collect_t ( ) {
234226 let mut pre_cpu: Vec < u64 > = vec ! [ 0 , 0 , 0 , 0 ] ;
@@ -280,15 +272,15 @@ pub fn get_network(args: &Args) -> (bool, bool) {
280272 for ( idx, probe_addr) in addrs. into_iter ( ) . enumerate ( ) {
281273 let _ = probe_addr. to_socket_addrs ( ) . map ( |mut iter| {
282274 if let Some ( addr) = iter. next ( ) {
283- info ! ( "{} => {}" , probe_addr , addr ) ;
275+ info ! ( "{probe_addr } => {addr}" ) ;
284276
285277 let r = TcpStream :: connect_timeout ( & addr, Duration :: from_millis ( TIMEOUT_MS ) ) . map ( |s| {
286278 network[ idx] = true ;
287279 s. shutdown ( Shutdown :: Both )
288280 } ) ;
289281
290- info ! ( "{:?}" , r ) ;
291- } ;
282+ info ! ( "{r :?}" ) ;
283+ }
292284 } ) ;
293285 }
294286
@@ -339,9 +331,9 @@ fn start_ping_collect_t(data: &Arc<Mutex<PingData>>) {
339331 let time_cost_ms = instant. elapsed ( ) . as_millis ( ) ;
340332
341333 if let Ok ( mut o) = ping_data. lock ( ) {
342- o. ping_time = time_cost_ms as u32 ;
334+ o. ping_time = u32 :: try_from ( time_cost_ms) . unwrap_or ( u32:: MAX ) ;
343335 if package_list. len ( ) > 30 {
344- o. lost_rate = package_lost * 100 / package_list. len ( ) as u32 ;
336+ o. lost_rate = package_lost * 100 / u32 :: try_from ( package_list. len ( ) ) . unwrap_or ( u32:: MAX ) ;
345337 }
346338 }
347339
@@ -356,21 +348,21 @@ pub static G_PING_10086: OnceCell<Arc<Mutex<PingData>>> = OnceCell::new();
356348pub fn start_all_ping_collect_t ( args : & Args ) {
357349 G_PING_10010
358350 . set ( Arc :: new ( Mutex :: new ( PingData {
359- probe_uri : args. cu_addr . to_owned ( ) ,
351+ probe_uri : args. cu_addr . clone ( ) ,
360352 lost_rate : 0 ,
361353 ping_time : 0 ,
362354 } ) ) )
363355 . unwrap ( ) ;
364356 G_PING_189
365357 . set ( Arc :: new ( Mutex :: new ( PingData {
366- probe_uri : args. ct_addr . to_owned ( ) ,
358+ probe_uri : args. ct_addr . clone ( ) ,
367359 lost_rate : 0 ,
368360 ping_time : 0 ,
369361 } ) ) )
370362 . unwrap ( ) ;
371363 G_PING_10086
372364 . set ( Arc :: new ( Mutex :: new ( PingData {
373- probe_uri : args. cm_addr . to_owned ( ) ,
365+ probe_uri : args. cm_addr . clone ( ) ,
374366 lost_rate : 0 ,
375367 ping_time : 0 ,
376368 } ) ) )
0 commit comments