Basic module

append_and_steal_buffers

procedureSource

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
Example↗
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");

See also