I need an open-source (preferably MIT-licensed) light-weight growable buffer implemented in plain C (preferably also compileable as C++).
I need API equivalent to following (pseudo-code):
void set_allocator(buffer * buf, allocator_Fn fn);void push_bytes(buffer * buf, const char * bytes, size_t len);size_t get_length(buffer * buf);void overwrite_autogrow(buffer * buf, size_t offset, const char * bytes, size_t len);const char * to_string(buffer * buf);
Implementation should be clean and self-contained.
The overwrite_autogrow writes len of bytes to given offset while growing buffer as needed (as push_bytes does).
Ability to set allocator is optional, but preferable to have.
Does somebody know anything close to what I want?
Or, at least, any implementations worth looking at while implementing my own?