includes/type: Display size type bytes without decimal points

This commit is contained in:
Nik
2022-09-02 22:49:35 +02:00
committed by GitHub
parent 1d0b11372f
commit b094757b03

View File

@@ -9,32 +9,35 @@ namespace type {
namespace impl { namespace impl {
fn size_formatter(u128 size) { fn size_formatter(u128 size) {
double sizeValue = size; double sizeFloat = size;
u32 i = 0; u32 i = 0;
while (sizeValue >= 1024 && i <= 6) { while (sizeFloat >= 1024 && i <= 6) {
i += 1; i += 1;
sizeValue /= 1024; sizeFloat /= 1024;
} }
str result = std::format("{:.3f} ", sizeValue); if (i == 0) {
if (size == 1)
if (i == 0 && size == 1) return std::format("{} Byte", size);
return result + "Byte"; else
else if (i == 0) return std::format("{} Bytes", size);
return result + "Bytes"; } else {
else if (i == 1) str result = std::format("{:.3f} ", sizeFloat);
return result + "kiB";
else if (i == 2) if (i == 1)
return result + "MiB"; return result + "kiB";
else if (i == 3) else if (i == 2)
return result + "GiB"; return result + "MiB";
else if (i == 4) else if (i == 3)
return result + "TiB"; return result + "GiB";
else if (i == 5) else if (i == 4)
return result + "PiB"; return result + "TiB";
else else if (i == 5)
return result + "EiB"; return result + "PiB";
else
return result + "EiB";
}
}; };
} }