@@ -45,26 +45,26 @@ mod imp {
45
45
pub fn current ( ) -> io:: Result < State > {
46
46
let mut state = String :: new ( ) ;
47
47
File :: open ( "/proc/stat" ) ?. read_to_string ( & mut state) ?;
48
- let mut parts = state. lines ( ) . next ( ) . unwrap ( ) . split_whitespace ( ) ;
49
- if parts. next ( ) != Some ( "cpu" ) {
50
- return Err ( io:: Error :: new (
51
- io:: ErrorKind :: Other ,
52
- "cannot parse /proc/stat" ,
53
- ) ) ;
54
- }
55
48
56
- Ok ( State {
57
- user : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
58
- nice : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
59
- system : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
60
- idle : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
61
- iowait : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
62
- irq : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
63
- softirq : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
64
- steal : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
65
- guest : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
66
- guest_nice : parts. next ( ) . unwrap ( ) . parse :: < u64 > ( ) . unwrap ( ) ,
67
- } )
49
+ ( || {
50
+ let mut parts = state. lines ( ) . next ( ) ?. split_whitespace ( ) ;
51
+ if parts. next ( ) ? != "cpu" {
52
+ return None ;
53
+ }
54
+ Some ( State {
55
+ user : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
56
+ nice : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
57
+ system : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
58
+ idle : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
59
+ iowait : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
60
+ irq : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
61
+ softirq : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
62
+ steal : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
63
+ guest : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
64
+ guest_nice : parts. next ( ) ?. parse :: < u64 > ( ) . ok ( ) ?,
65
+ } )
66
+ } ) ( )
67
+ . ok_or_else ( || io:: Error :: new ( io:: ErrorKind :: Other , "first line of /proc/stat malformed" ) )
68
68
}
69
69
70
70
pub fn pct_idle ( prev : & State , next : & State ) -> f64 {
0 commit comments