Buffer adapted from go/src/fmt/print.go
type Buffer []byte
func New() *Buffer
func (b *Buffer) Free()
func (b *Buffer) Reset()
func (b *Buffer) String() string
func (b *Buffer) Write(p []byte) (int, error)
func (b *Buffer) WriteByte(c byte)
func (b *Buffer) WritePosInt(i int)
func (b *Buffer) WritePosIntWidth(i, width int)
WritePosIntWidth writes non-negative integer i to the buffer, padded on the left by zeroes to the given width. Use a width of 0 to omit padding.
func (b *Buffer) WriteString(s string)