#include #include Result to_dynamic_unit(usize value, char* buffer, size_t max) { if (value < 1024) { return string_format(buffer, max, "%u bytes", value); } const char* unit_prefixes = "KMGTPE"; while (value > (1024 * 1024)) { value /= 1024; unit_prefixes++; } return string_format(buffer, max, "%u.%u %ciB", value / 1024, (value % 1024) / 103, *unit_prefixes); }