summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-byteutil/reader.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/codeberg.org/gruf/go-byteutil/reader.go')
-rw-r--r--vendor/codeberg.org/gruf/go-byteutil/reader.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/codeberg.org/gruf/go-byteutil/reader.go b/vendor/codeberg.org/gruf/go-byteutil/reader.go
new file mode 100644
index 000000000..94c755ff4
--- /dev/null
+++ b/vendor/codeberg.org/gruf/go-byteutil/reader.go
@@ -0,0 +1,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
+}