optimizations of utils

This commit is contained in:
Drath
2025-10-06 19:36:46 +02:00
parent 2db64e0c1d
commit 6f09d9a9eb
2 changed files with 16 additions and 30 deletions

View File

@@ -1,15 +1,5 @@
#include <utils.hpp>
// converts number to string with given decimal places
std::string pNum(double num, uint8_t decs) {
std::stringstream ret;
ret << std::fixed << std::setprecision(decs) << num;
return ret.str();
}
std::string pNum(float num, uint8_t decs) {
return pNum((double)num, decs);
}
// pads given string to length
std::string pad(std::string s, uint8_t len, bool ljust) {
@@ -33,10 +23,9 @@ std::string pBytes(double bytes, bool isKbytes) {
if (suffix == 'K' && isKbytes) continue; // skip first loop if already in Kbytes
bytes /= 1024.0;
if (bytes < 1024) {
uint8_t decs = 2;
if (bytes > 10) decs = 1;
if (bytes > 100) decs = 0;
return pNum(bytes, decs) + suffix;
if(bytes > 100) return pNum(bytes) + suffix;
if(bytes > 10) return pNum(bytes, 1) + suffix;
return pNum(bytes, 2) + suffix;
}
}
return "++++";
@@ -67,21 +56,19 @@ std::string readFile(std::string path, size_t trim) {
return out.substr(0, len - 1);
}
int get_val(const std::string& target, const std::string& content) {
int get_val(std::string_view target, std::string_view content) {
int result = -1;
std::size_t start = content.find(target);
if (start != std::string::npos) {
int begin = start + target.length();
std::size_t end = content.find("kB", start);
std::string substr = content.substr(begin, end - begin);
result = std::stoi(substr);
result = std::strtol(content.substr(begin, end - begin).data(), NULL, 10);
}
return result;
}
inline std::string getFirstDir(std::string_view path) {
// for (const auto& entry : std::filesystem::directory_iterator(path))
// return entry.path();
std::filesystem::directory_iterator(path)[0]; // can i just do that
// return "";
std::string getFirstDir(std::string_view path) {
for (const auto& entry : std::filesystem::directory_iterator(path))
return entry.path();
return "";
}