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
6 more granular units need lower precision, while less granular need
7 higher precision. assume sane default of:
14 src/adapters/net.cpp | 10 ++++++----
15 1 file changed, 6 insertions(+), 4 deletions(-)
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;
25 - vector<string> suffixes{"GB", "MB"};
26 + vector<pair<string,int>> units{make_pair("GB",2), make_pair("MB",1)};
30 while ((speedrate /= 1000) > 999) {
31 - suffix = suffixes.back();
32 - suffixes.pop_back();
33 + suffix = units.back().first;
34 + precision = units.back().second;
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";