diff options
| author | Shulhan <ms@kilabit.info> | 2025-02-07 01:32:44 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2025-04-18 13:59:35 +0700 |
| commit | 5cc78f0f88433bca520a15e77c1ff97e27219ce9 (patch) | |
| tree | d047949715dea37e3e65ce606cda45967acf4967 /lib/bytes/parser.go | |
| parent | 503934b176c42eb9fed7bfa3c4c8823a0c037517 (diff) | |
| download | pakakeh.go-5cc78f0f88433bca520a15e77c1ff97e27219ce9.tar.xz | |
lib/bytes: add method Peek to Parser
The Peek method take a look on n bytes inside the buffer without
using delimiters.
The returned bytes may empty or have length less than n.
Diffstat (limited to 'lib/bytes/parser.go')
| -rw-r--r-- | lib/bytes/parser.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/bytes/parser.go b/lib/bytes/parser.go index e5c7addb..b6adc0d8 100644 --- a/lib/bytes/parser.go +++ b/lib/bytes/parser.go @@ -40,6 +40,15 @@ func (bp *Parser) Delimiters() []byte { return bytes.Clone(bp.delims) } +// Peek take a look on n bytes inside the buffer without using delimiters. +// The returned bytes may empty or have length less than n. +func (bp *Parser) Peek(n int) []byte { + if bp.x+n > bp.size { + return bp.content[bp.x:] + } + return bp.content[bp.x : bp.x+n] +} + // Read read a token until one of the delimiters found. // If one of delimiter match, it will return it as d. // When end of content encountered, the returned token may be not empty but |
