Get rid of clib in big int, introduce message api, add stringify message

This commit is contained in:
Krzosa Karol
2023-01-01 19:51:35 +01:00
parent ec66f02e46
commit aa994c999a
7 changed files with 82 additions and 92 deletions

View File

@@ -209,26 +209,16 @@ string_builder_make(Allocator *a, S64 first_block_size = 4096){
return sb;
}
enum String_Builder_Flag{
String_Builder_Flag_None = 0,
String_Builder_Flag_AddSize = 0,
};
CORE_Static String
string_flatten(Allocator *a, String_Builder *b, String_Builder_Flag flags = String_Builder_Flag_None){
// @! Make string_flatten a method
static String string_flatten(Allocator *a, String_Builder *b){
// @Note(Krzosa): Compute size to allocate
S64 size = 1;
if(is_flag_set(flags, String_Builder_Flag_AddSize)) size += sizeof(size_t);
For_Linked_List(b->first){
size += it->len;
}
String result = {};
result.str = (U8 *)allocate_size(a, size, false);
if(is_flag_set(flags, String_Builder_Flag_AddSize)) {
memory_copy(result.str + result.len, &size, sizeof(S64));
result.len += sizeof(S64);
}
// @Note(Krzosa): Copy the content of each block into the string
For_Linked_List(b->first){