From bc1bacc410ddfa444c5bf0e56f33a7da440658ae Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 30 Jan 2023 11:42:51 -0700 Subject: decode: Inline noWsRuneTypeScanner into runeTypeScannerImpl --- decode_scan.go | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) (limited to 'decode_scan.go') 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 { -- cgit v1.2.3-2-g168b