]> git.pld-linux.org Git - packages/polybar.git/blob - polybar-net-speedrate-precison.patch
0cf21723784af91cc8c410ca2c9cb3cd6619d2d1
[packages/polybar.git] / polybar-net-speedrate-precison.patch
1 From 6208c9e2454e00f61a0980ca3fdae630e52a9548 Mon Sep 17 00:00:00 2001
2 From: Jan Palus <atler@pld-linux.org>
3 Date: Thu, 9 Apr 2020 01:39:27 +0200
4 Subject: [PATCH] net: increase speedrate precision
5
6 more granular units need lower precision, while less granular need
7 higher precision. assume sane default of:
8
9 unit | precision
10 KB   | 0
11 MB   | 1
12 GB   | 2
13 ---
14  src/adapters/net.cpp | 10 ++++++----
15  1 file changed, 6 insertions(+), 4 deletions(-)
16
17 diff --git a/src/adapters/net.cpp b/src/adapters/net.cpp
18 index 40c8b89fd7..4860309577 100644
19 --- a/src/adapters/net.cpp
20 +++ b/src/adapters/net.cpp
21 @@ -229,15 +229,17 @@ namespace net {
22      float time_diff = duration.count();
23      float speedrate = bytes_diff / time_diff;
24  
25 -    vector<string> suffixes{"GB", "MB"};
26 +    vector<pair<string,int>> units{make_pair("GB",2), make_pair("MB",1)};
27      string suffix{"KB"};
28 +    int precision = 0;
29  
30      while ((speedrate /= 1000) > 999) {
31 -      suffix = suffixes.back();
32 -      suffixes.pop_back();
33 +      suffix = units.back().first;
34 +      precision = units.back().second;
35 +      units.pop_back();
36      }
37  
38 -    return sstream() << std::setw(minwidth) << std::setfill(' ') << std::setprecision(0) << std::fixed << speedrate
39 +    return sstream() << std::setw(minwidth) << std::setfill(' ') << std::setprecision(precision) << std::fixed << speedrate
40                       << " " << suffix << "/s";
41    }
42  
This page took 0.022346 seconds and 2 git commands to generate.