StringPool :: struct {
arena: Arena;
}
StringPool.add :: (sp: &StringPool, s: [] u8) -> [] u8
StringPool.flush :: (sp: &StringPool) -> void
StringPool.free :: (sp: &StringPool) -> void
String_Buffer :: struct {
data: [&] u8;
count: u32;
capacity: u32;
}
buffer_append :: (buffer: &String_Buffer, end: [] u8) -> bool
buffer_clear :: (buffer: &String_Buffer) -> void
buffer_delete :: (buffer: &String_Buffer, position: i32) -> bool
buffer_insert :: (buffer: &String_Buffer, position: i32, ch: u8) -> bool
buffer_make :: (buffer_memory: [] u8, initial_str: [] u8) -> String_Buffer
buffer_to_str :: (buffer: &String_Buffer) -> [] u8
from_cstr :: (s: [&] u8) -> [] u8
is_empty :: (s: [] u8) -> bool
length :: (s: [] u8) -> u32
length :: (s: [&] u8) -> u32
pool_add :: (sp: &StringPool, s: [] u8) -> [] u8
pool_flush :: (sp: &StringPool) -> void
pool_free :: (sp: &StringPool) -> void
pool_make :: (maximum_string_length: i32, allocator: Allocator) -> StringPool