aboutsummaryrefslogtreecommitdiff
path: root/lib/bytes/parser.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2025-02-07 01:32:44 +0700
committerShulhan <ms@kilabit.info>2025-04-18 13:59:35 +0700
commit5cc78f0f88433bca520a15e77c1ff97e27219ce9 (patch)
treed047949715dea37e3e65ce606cda45967acf4967 /lib/bytes/parser.go
parent503934b176c42eb9fed7bfa3c4c8823a0c037517 (diff)
downloadpakakeh.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.go9
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