Skip to content

Commit

Permalink
Simplifies decoding implementation to not use scanner
Browse files Browse the repository at this point in the history
  • Loading branch information
Ciro S. Costa committed Jul 3, 2018
1 parent 63c5671 commit 3b3a893
Showing 1 changed file with 6 additions and 18 deletions.
24 changes: 6 additions & 18 deletions cast/cast.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
package cast

import (
"bufio"
"bytes"
"encoding/json"
"io"

Expand Down Expand Up @@ -253,19 +251,12 @@ func Decode(reader io.Reader) (cast *Cast, err error) {
}

var (
scanner = bufio.NewScanner(reader)
decoder *json.Decoder
ok bool
)

cast = new(Cast)
ok = scanner.Scan()
if !ok {
err = errors.Errorf("empty reader")
return
}

decoder = json.NewDecoder(bytes.NewReader(scanner.Bytes()))
decoder = json.NewDecoder(reader)
decoder.DisallowUnknownFields()

err = decoder.Decode(&cast.Header)
Expand All @@ -285,16 +276,13 @@ func Decode(reader io.Reader) (cast *Cast, err error) {
ok bool
)

ok = scanner.Scan()
if !ok {
return
}

decoder = json.NewDecoder(bytes.NewReader(scanner.Bytes()))
decoder.DisallowUnknownFields()

err = decoder.Decode(ev)
if err != nil {
if err == io.EOF {
err = nil
return
}

err = errors.Wrapf(err,
"failed to parse ev line")
return
Expand Down

0 comments on commit 3b3a893

Please sign in to comment.