the number of bytes that can be stored in the string before it needs to be reallocated. May be larger than @len.
contains the length of the string, not including the terminating nul byte.
points to the character data. It may move as text is added. The @str field is null-terminated and so can be used as an ordinary C string.