moved memory and count string formatters to the main layer and

replaced str8_from_memory_size with more accurate data size units
This commit is contained in:
Nikita Smith
2024-11-12 10:36:44 -08:00
parent 0d0951bf08
commit 3d7fc6fce5
7 changed files with 124 additions and 116 deletions
-89
View File
@@ -136,46 +136,6 @@ str8_list_push_many(Arena *arena, String8List *list, U64 count)
return arr;
}
internal String8
str8_from_bits_u32(Arena *arena, U32 x)
{
U8 c0 = 'a' + ((x >> 28) & 0xf);
U8 c1 = 'a' + ((x >> 24) & 0xf);
U8 c2 = 'a' + ((x >> 20) & 0xf);
U8 c3 = 'a' + ((x >> 16) & 0xf);
U8 c4 = 'a' + ((x >> 12) & 0xf);
U8 c5 = 'a' + ((x >> 8) & 0xf);
U8 c6 = 'a' + ((x >> 4) & 0xf);
U8 c7 = 'a' + ((x >> 0) & 0xf);
String8 result = push_str8f(arena, "%c%c%c%c%c%c%c%c", c0, c1, c2, c3, c4, c5, c6, c7);
return result;
}
internal String8
str8_from_bits_u64(Arena *arena, U64 x)
{
U8 c0 = 'a' + ((x >> 60) & 0xf);
U8 c1 = 'a' + ((x >> 56) & 0xf);
U8 c2 = 'a' + ((x >> 52) & 0xf);
U8 c3 = 'a' + ((x >> 48) & 0xf);
U8 c4 = 'a' + ((x >> 44) & 0xf);
U8 c5 = 'a' + ((x >> 40) & 0xf);
U8 c6 = 'a' + ((x >> 36) & 0xf);
U8 c7 = 'a' + ((x >> 32) & 0xf);
U8 c8 = 'a' + ((x >> 28) & 0xf);
U8 c9 = 'a' + ((x >> 24) & 0xf);
U8 ca = 'a' + ((x >> 20) & 0xf);
U8 cb = 'a' + ((x >> 16) & 0xf);
U8 cc = 'a' + ((x >> 12) & 0xf);
U8 cd = 'a' + ((x >> 8) & 0xf);
U8 ce = 'a' + ((x >> 4) & 0xf);
U8 cf = 'a' + ((x >> 0) & 0xf);
String8 result = push_str8f(arena,
"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
c0, c1, c2, c3, c4, c5, c6, c7, c8, c9, ca, cb, cc, cd, ce, cf);
return result;
}
internal String8Node *
str8_list_pop_front(String8List *list)
{
@@ -190,55 +150,6 @@ str8_list_pop_front(String8List *list)
return node;
}
internal String8
str8_from_memory_size2(Arena *arena, U64 size)
{
String8 result;
if (size < KB(1)) {
result = push_str8f(arena, "%llu Bytes", size);
} else if (size < MB(1)) {
result = push_str8f(arena, "%llu.%02llu KiB", size / KB(1), ((size * 100) / KB(1)) % 100);
} else if (size < GB(1)) {
result = push_str8f(arena, "%llu.%02llu MiB", size / MB(1), ((size * 100) / MB(1)) % 100);
} else if (size < TB(1)) {
result = push_str8f(arena, "%llu.%02llu GiB", size / GB(1), ((size * 100) / GB(1)) % 100);
} else {
result = push_str8f(arena, "%llu.%02llu TiB", size / TB(1), ((size * 100) / TB(1)) % 100);
}
return result;
}
internal String8
str8_from_count(Arena *arena, U64 count)
{
String8 result;
if (count < 1000) {
result = push_str8f(arena, "%llu", count);
} else if (count < 1000000) {
U64 frac = ((count * 100) / 1000) % 100;
if (frac) {
result = push_str8f(arena, "%llu.%02lluK", count / 1000, frac);
} else {
result = push_str8f(arena, "%lluK", count / 1000);
}
} else if (count < 1000000000) {
U64 frac = ((count * 100) / 1000000) % 100;
if (frac) {
result = push_str8f(arena, "%llu.%02lluM", count / 1000000, frac);
} else {
result = push_str8f(arena, "%lluM", count / 1000000);
}
} else {
U64 frac = ((count * 100) * 1000000000) % 100;
if (frac) {
result = push_str8f(arena, "%llu.%02lluB", count / 1000000000, frac);
} else {
result = push_str8f(arena, "%lluB", count / 1000000000, frac);
}
}
return result;
}
internal U64
hash_from_str8(String8 string)
{
-6
View File
@@ -20,14 +20,8 @@ internal U64 str8_list_push_pad_front(Arena *arena, String8List *list,
internal String8List str8_list_arr_concat(String8List *v, U64 count);
internal String8Node * str8_list_push_many(Arena *arena, String8List *list, U64 count);
internal String8 str8_from_bits_u32(Arena *arena, U32 x);
internal String8 str8_from_bits_u64(Arena *arena, U64 x);
// TODO: remove
internal String8Node * str8_list_pop_front(String8List *list);
internal String8 str8_from_memory_size2(Arena *arena, U64 size);
internal String8 str8_from_count(Arena *arena, U64 count);
internal U64 hash_from_str8(String8 string);