diff options
| author | 2021-08-16 19:17:56 +0200 | |
|---|---|---|
| committer | 2021-08-16 19:17:56 +0200 | |
| commit | ce190d867ca126001a1c0417b00810fc03c0b3ba (patch) | |
| tree | 364b00118a405239bc6bcac0bfb7891c83655c23 /vendor/github.com/tdewolff/parse/v2/buffer/reader.go | |
| parent | Timeline loop fix (#140) (diff) | |
| download | gotosocial-ce190d867ca126001a1c0417b00810fc03c0b3ba.tar.xz | |
Text/status parsing fixes (#141)
* aaaaaa
* vendor minify
* update + test markdown parsing
Diffstat (limited to 'vendor/github.com/tdewolff/parse/v2/buffer/reader.go')
| -rw-r--r-- | vendor/github.com/tdewolff/parse/v2/buffer/reader.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/parse/v2/buffer/reader.go b/vendor/github.com/tdewolff/parse/v2/buffer/reader.go new file mode 100644 index 000000000..9926eef66 --- /dev/null +++ b/vendor/github.com/tdewolff/parse/v2/buffer/reader.go @@ -0,0 +1,44 @@ +package buffer + +import "io" + +// Reader implements an io.Reader over a byte slice. +type Reader struct { + buf []byte + pos int +} + +// NewReader returns a new Reader for a given byte slice. +func NewReader(buf []byte) *Reader { + return &Reader{ + buf: buf, + } +} + +// Read reads bytes into the given byte slice and returns the number of bytes read and an error if occurred. +func (r *Reader) Read(b []byte) (n int, err error) { + if len(b) == 0 { + return 0, nil + } + if r.pos >= len(r.buf) { + return 0, io.EOF + } + n = copy(b, r.buf[r.pos:]) + r.pos += n + return +} + +// Bytes returns the underlying byte slice. +func (r *Reader) Bytes() []byte { + return r.buf +} + +// Reset resets the position of the read pointer to the beginning of the underlying byte slice. +func (r *Reader) Reset() { + r.pos = 0 +} + +// Len returns the length of the buffer. +func (r *Reader) Len() int { + return len(r.buf) +} |
