@@ -24,13 +24,13 @@ pub fn sysinfo() -> &'static RwLock<System> {
2424}
2525
2626pub trait Column {
27- fn as_string ( & self ) -> String ;
27+ fn as_string ( & self , show_zeros : bool ) -> String ;
2828 fn cmp_dyn ( & self , other : & dyn Column ) -> Ordering ;
2929 fn as_any ( & self ) -> & dyn Any ;
3030}
3131
3232impl Column for String {
33- fn as_string ( & self ) -> String {
33+ fn as_string ( & self , _show_zeros : bool ) -> String {
3434 self . clone ( )
3535 }
3636
@@ -47,7 +47,10 @@ impl Column for String {
4747}
4848
4949impl Column for u32 {
50- fn as_string ( & self ) -> String {
50+ fn as_string ( & self , show_zeros : bool ) -> String {
51+ if !show_zeros && self == & 0 {
52+ return String :: new ( ) ;
53+ }
5154 self . to_string ( )
5255 }
5356
@@ -64,7 +67,10 @@ impl Column for u32 {
6467}
6568
6669impl Column for Option < i32 > {
67- fn as_string ( & self ) -> String {
70+ fn as_string ( & self , show_zeros : bool ) -> String {
71+ if !show_zeros && self == & Some ( 0 ) {
72+ return String :: new ( ) ;
73+ }
6874 self . map ( |v| v. to_string ( ) ) . unwrap_or_default ( )
6975 }
7076
@@ -96,7 +102,10 @@ impl PercentValue {
96102}
97103
98104impl Column for PercentValue {
99- fn as_string ( & self ) -> String {
105+ fn as_string ( & self , show_zeros : bool ) -> String {
106+ if !show_zeros && self . value == 0.0 {
107+ return String :: new ( ) ;
108+ }
100109 format ! ( "{:.1}" , self . value)
101110 }
102111
@@ -123,7 +132,10 @@ impl MemValue {
123132}
124133
125134impl Column for MemValue {
126- fn as_string ( & self ) -> String {
135+ fn as_string ( & self , show_zeros : bool ) -> String {
136+ if !show_zeros && self . value == 0 {
137+ return String :: new ( ) ;
138+ }
127139 let mem_mb = self . value as f64 / bytesize:: MIB as f64 ;
128140 if mem_mb >= 10000.0 {
129141 format ! ( "{:.1}g" , self . value as f64 / bytesize:: GIB as f64 )
@@ -156,7 +168,10 @@ impl TimeMSValue {
156168}
157169
158170impl Column for TimeMSValue {
159- fn as_string ( & self ) -> String {
171+ fn as_string ( & self , show_zeros : bool ) -> String {
172+ if !show_zeros && self . min == 0 && self . sec < 0.01 {
173+ return String :: new ( ) ;
174+ }
160175 format ! ( "{}:{:0>5.2}" , self . min, self . sec)
161176 }
162177
0 commit comments