Appends everything in steal_from to builder and leaves steal_from empty. When both use the same allocator the
buffers are moved instead of copied. Handy when threads fill their own builders and one of them joins the results.
append_and_steal_buffers :: (
builder: *String_Builder,
steal_from: *String_Builder
)
Parameters
- builder: *String_Builder
- steal_from: *String_Builder
a: String_Builder;
b: String_Builder;
defer free_buffers(*a);
defer free_buffers(*b);
append(*a, "one ");
append(*b, "two");
append_and_steal_buffers(*a, *b);
assert(builder_string_length(*b) == 0);
text := builder_to_string(*a);
defer free(text);
assert(text == "one two");