STRING provides a way to allocate and free text strings, while de-duplicating them.
It can be used similarly to libc string functions:
string_strlen()(and it does not walkthrough the bytes of the string).
There is also a special
string_dup() function that increases the reference counter of a STRING, avoiding the
index lookup to find it.
Once there is a
STRING *, the actual
const char * can be accessed with
All STRING should be constant. Changing the contents of a
const char * that has been acquired by
string2str() should never happen.