#include <rudiments/stringbuffer.h>
#include <rudiments/stdio.h>
int main(int argc, const char **argv) {
stringbuffer strb;
// append strings, numbers, and characters...
strb.append("hello, ")->append("goodbye, ");
strb.append((uint64_t)1)->append(", ");
strb.append((double)1.234,4,3)->append('.');
stdoutput.write("after initial append:\n");
stdoutput.printf(" contents: \"%s\"\n",strb.getString());
stdoutput.printf(" length: %d\n",strb.getStringLength());
stdoutput.write('\n');
// clear the buffer and append more data to it
strb.clear();
strb.append("1 2 3 4 5 6 7 8 9 0");
// overwrite the first 5 numbers...
strb.setPosition(0);
strb.write("0 9 8 7 6");
stdoutput.write("after overwrite:\n");
stdoutput.printf(" contents: \"%s\"\n",strb.getString());
stdoutput.printf(" length: %d\n",strb.getStringLength());
stdoutput.write('\n');
// truncate the string after the first 2 numbers
strb.truncate(3);
stdoutput.write("after truncate:\n");
stdoutput.printf(" contents: \"%s\"\n",strb.getString());
stdoutput.printf(" length: %d\n",strb.getStringLength());
stdoutput.write('\n');
// detach the string
char *str=strb.detachString();
stdoutput.write("after detach:\n");
stdoutput.printf(" contents: \"%s\"\n",strb.getString());
stdoutput.printf(" length: %d\n",strb.getStringLength());
stdoutput.printf(" detached string: \"%s\"\n",str);
stdoutput.write('\n');
delete[] str;
}