summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-byteutil/reader.go
blob: 94c755ff411567c1d4a89b1e46ad3abde96e0f89 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package byteutil

import "bytes"

// Reader wraps a bytes.Reader{} to provide Rewind() capabilities.
type Reader struct {
	B []byte
	bytes.Reader
}

// NewReader returns a new Reader{} instance reset to b.
func NewReader(b []byte) *Reader {
	r := &Reader{}
	r.Reset(b)
	return r
}

// Reset resets the Reader{} to be reading from b and sets Reader{}.B.
func (r *Reader) Reset(b []byte) {
	r.B = b
	r.Rewind()
}

// Rewind resets the Reader{} to be reading from the start of Reader{}.B.
func (r *Reader) Rewind() {
	r.Reader.Reset(r.B)
}

// ReadNopCloser wraps a Reader{} to provide nop close method.
type ReadNopCloser struct {
	Reader
}

func (*ReadNopCloser) Close() error {
	return nil
}