1
0
Fork 0
gilo/internal/gilo/buffer.go

61 lines
962 B
Go

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()
}