v0.3.0: Major API improvement - Reference-counted ds_builder
Major API Changes
This release introduces significant improvements to the ds_builder API with reference counting for better memory management.
BREAKING CHANGES
- Renamed
ds_stringbuildertods_builderfor consistency - Changed
ds_builderto be heap-allocated and reference-counted likeds_string - Replaced
ds_builder_destroy()withds_builder_release()that sets pointer to NULL - Updated builder functions to take
ds_builder(pointer) instead ofds_builder*
NEW FEATURES
- Added
ds_builder_retain()for safe sharing of builders between different parts of code - Improved consistent retain/release semantics across both
ds_stringandds_builder - Enhanced memory management with full reference counting for builders
Migration Guide
Before v0.3.0:
ds_stringbuilder sb = ds_builder_create();
ds_builder_append(&sb, "Hello");
ds_builder_destroy(&sb);v0.3.0 and later:
ds_builder sb = ds_builder_create();
ds_builder_append(sb, "Hello");
ds_builder_release(&sb); // sb becomes NULLDownload
- Single-header library: dynamic_string.h
All tests pass (71/71) and the library maintains full backwards compatibility for ds_string operations.