A simple stack based StringBuffer that overflows into the heap and releases all used memory on destruction.
By default the StringBuffer can store 512 chars on the stack. If a different number of chars on the stack is required create an
alias MyStringBuffer = StringBufferImpl!1337;
like this.
The two important methods of the StringBuffer are writer and getData. The method writer returns a OutputRange that can be used with formattedWrite from std.format; The method getData returns a string of the stored data. No reference to the returned data from writer and getData must be used after the associated StringBuffer is destructed.
unittest { import std.format : formattedWrite; StringBuffer buf; auto w = buf.writer(); formattedWrite(w, "foobar %d", 10); assert(buf.getData() == "foobar 10"); }