summaryrefslogtreecommitdiff
path: root/decode.go
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@datawire.io>2022-08-14 20:52:06 -0600
committerLuke Shumaker <lukeshu@datawire.io>2022-08-15 00:28:47 -0600
commit58b7df5e9f1c0d4858528f326440599620a8c1fb (patch)
treedcbe104b42ff22debe4adf767ff1fe69785aa394 /decode.go
parent25d0b8365020ef4051dffd4f7704328402914613 (diff)
Create a compat/json compatibility library
Diffstat (limited to 'decode.go')
-rw-r--r--decode.go20
1 files changed, 7 insertions, 13 deletions
diff --git a/decode.go b/decode.go
index 0769bc7..8426526 100644
--- a/decode.go
+++ b/decode.go
@@ -27,8 +27,7 @@ type runeBuffer interface {
}
type Decoder struct {
- io runeTypeScanner
- buf *bufio.Reader
+ io runeTypeScanner
// config
disallowUnknownFields bool
@@ -39,23 +38,18 @@ type Decoder struct {
stack []any
}
-var forceBufio bool // used by the tests to implement .Buffered()
-
func NewDecoder(r io.Reader) *Decoder {
rr, ok := r.(io.RuneReader)
- var ret Decoder
- if forceBufio || !ok {
+ if !ok {
rr = bufio.NewReader(r)
- if forceBufio {
- ret.buf = rr.(*bufio.Reader)
- }
}
- ret.io = &noWSRuneTypeScanner{
- inner: &runeTypeScannerImpl{
- inner: rr,
+ return &Decoder{
+ io: &noWSRuneTypeScanner{
+ inner: &runeTypeScannerImpl{
+ inner: rr,
+ },
},
}
- return &ret
}
func (dec *Decoder) DisallowUnknownFields() { dec.disallowUnknownFields = true }