package gilo import ( "fmt" "strings" ) // ---------------------------------------------------------------------------- // !Output Buffer // ---------------------------------------------------------------------------- type Buffer struct { buf *strings.Builder } func NewBuffer() *Buffer { var buf strings.Builder b := new(Buffer) b.buf = &buf return b } func (b *Buffer) AppendRune(r rune) int { size, _ := b.buf.WriteRune(r) return size } func (b *Buffer) Append(s string) int { size, _ := b.buf.WriteString(s) return size } func (b *Buffer) AppendLn(s string) int { str := fmt.Sprintf("%s\r\n", s) size, _ := b.buf.WriteString(str) return size } func (b *Buffer) ToString() string { return b.buf.String() } func (b *Buffer) Truncate(length int) string { current := b.buf.String() truncated := Truncate(current, length) b.buf.Reset() b.Append(truncated) return truncated } func (b *Buffer) Len() int { return b.buf.Len() }