summaryrefslogtreecommitdiff
path: root/decode_scan.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@lukeshu.com>2023-01-30 11:42:51 -0700
committerLuke Shumaker <lukeshu@lukeshu.com>2023-01-30 22:00:25 -0700
commitbc1bacc410ddfa444c5bf0e56f33a7da440658ae (patch)
tree53d982348637d4f7e1ffffe89a69105ec350df6e /decode_scan.go
parent659114fee7c39f06c408135169f2848a881dfe5e (diff)
decode: Inline noWsRuneTypeScanner into runeTypeScannerImpl
Diffstat (limited to 'decode_scan.go')
-rw-r--r--decode_scan.go37
1 files changed, 4 insertions, 33 deletions
diff --git a/decode_scan.go b/decode_scan.go
index 387fcea..261aaa6 100644
--- a/decode_scan.go
+++ b/decode_scan.go
@@ -77,6 +77,7 @@ func (sc *runeTypeScannerImpl) ReadRuneType() (rune, int, internal.RuneType, err
_, _, _ = sc.inner.ReadRune()
default:
sc.initialized = true
+ again:
var err error
sc.rRune, sc.rSize, err = sc.inner.ReadRune()
sc.offset += int64(sc.rSize)
@@ -91,6 +92,9 @@ func (sc *runeTypeScannerImpl) ReadRuneType() (rune, int, internal.RuneType, err
} else {
sc.rErr = nil
}
+ if sc.rType == internal.RuneTypeSpace {
+ goto again
+ }
case io.EOF:
sc.rType, err = sc.parser.HandleEOF()
if err != nil {
@@ -147,39 +151,6 @@ func (sc *runeTypeScannerImpl) InputOffset() int64 {
return ret
}
-// noWSRuneTypeScanner /////////////////////////////////////////////////////////////////////////////
-
-type noWSRuneTypeScanner struct {
- inner runeTypeScanner
-}
-
-var _ runeTypeScanner = (*noWSRuneTypeScanner)(nil)
-
-func (sc *noWSRuneTypeScanner) ReadRuneType() (rune, int, internal.RuneType, error) {
-again:
- r, s, t, e := sc.inner.ReadRuneType()
- if t == internal.RuneTypeSpace {
- goto again
- }
- return r, s, t, e
-}
-
-func (sc *noWSRuneTypeScanner) ReadRune() (rune, int, error) {
- r, s, t, e := sc.ReadRuneType()
- switch t {
- case internal.RuneTypeEOF:
- return 0, 0, io.EOF
- case internal.RuneTypeError:
- return 0, 0, e
- default:
- return r, s, nil
- }
-}
-
-func (sc *noWSRuneTypeScanner) UnreadRune() error { return sc.inner.UnreadRune() }
-func (sc *noWSRuneTypeScanner) Reset() { sc.inner.Reset() }
-func (sc *noWSRuneTypeScanner) InputOffset() int64 { return sc.inner.InputOffset() }
-
// elemRuneTypeScanner /////////////////////////////////////////////////////////////////////////////
type elemRuneTypeScanner struct {