You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
1 year ago
|
package nbyte
|
||
|
|
||
|
import (
|
||
|
"bytes"
|
||
|
"fmt"
|
||
|
"strings"
|
||
|
)
|
||
|
|
||
|
// Buffer wrap and extends the bytes.Buffer
|
||
|
type Buffer struct {
|
||
|
bytes.Buffer
|
||
|
}
|
||
|
|
||
|
// NewBuffer instance
|
||
|
func NewBuffer() *Buffer {
|
||
|
return &Buffer{}
|
||
|
}
|
||
|
|
||
|
// WriteAny type value to buffer
|
||
|
func (b *Buffer) WriteAny(vs ...any) {
|
||
|
for _, v := range vs {
|
||
|
_, _ = b.Buffer.WriteString(fmt.Sprint(v))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// QuietWriteByte to buffer
|
||
|
func (b *Buffer) QuietWriteByte(c byte) {
|
||
|
_ = b.WriteByte(c)
|
||
|
}
|
||
|
|
||
|
// QuietWritef write message to buffer
|
||
|
func (b *Buffer) QuietWritef(tpl string, vs ...any) {
|
||
|
_, _ = b.WriteString(fmt.Sprintf(tpl, vs...))
|
||
|
}
|
||
|
|
||
|
// Writeln write message to buffer with newline
|
||
|
func (b *Buffer) Writeln(ss ...string) {
|
||
|
b.QuietWriteln(ss...)
|
||
|
}
|
||
|
|
||
|
// QuietWriteln write message to buffer with newline
|
||
|
func (b *Buffer) QuietWriteln(ss ...string) {
|
||
|
_, _ = b.WriteString(strings.Join(ss, ""))
|
||
|
_ = b.WriteByte('\n')
|
||
|
}
|
||
|
|
||
|
// QuietWriteString to buffer
|
||
|
func (b *Buffer) QuietWriteString(ss ...string) {
|
||
|
_, _ = b.WriteString(strings.Join(ss, ""))
|
||
|
}
|
||
|
|
||
|
// MustWriteString to buffer
|
||
|
func (b *Buffer) MustWriteString(ss ...string) {
|
||
|
_, err := b.WriteString(strings.Join(ss, ""))
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// ResetAndGet buffer string.
|
||
|
func (b *Buffer) ResetAndGet() string {
|
||
|
s := b.String()
|
||
|
b.Reset()
|
||
|
return s
|
||
|
}
|