30 lines
405 B
Go
30 lines
405 B
Go
package editor
|
|
|
|
type RuneBuf struct {
|
|
buf []rune
|
|
}
|
|
|
|
func (b *RuneBuf) WriteRune(r rune) {
|
|
b.buf = append(b.buf, r)
|
|
}
|
|
|
|
func (b *RuneBuf) Backspace() bool {
|
|
if len(b.buf) == 0 {
|
|
return false
|
|
}
|
|
b.buf = b.buf[:len(b.buf)-1]
|
|
return true
|
|
}
|
|
|
|
func (b *RuneBuf) String() string {
|
|
return string(b.buf)
|
|
}
|
|
|
|
func (b *RuneBuf) Reset() {
|
|
b.buf = b.buf[:0]
|
|
}
|
|
|
|
func (b *RuneBuf) Len() int {
|
|
return len(b.buf)
|
|
}
|