>>110288246
you should take another lesson from ryan and use actual strings instead of c strings. if you pass around string structs by value like this then arenas also function as string concatenators
char* StringBuilderBegin = Arena_Get_Top_Pointer(Arena, 1);
char* StringBuilderEnd;
Arena_Push_String(Arena, lit ("hello "));
Arena_Push_String(Arena, lit ("world "));
Arena_Push_String(Arena, lit ("from "));
Arena_Push_String(Arena, lit ("arena\n"));
StringBuilderEnd = Arena_Get_Top_Pointer(Arena, 1);
string Message = (string){.Data = StringBuilderBegin, .Length = StringBuilderEnd - StringBuilderBegin};
Print(Message);