in EVChecker/main.go [78:111]
func deser(src []byte) ([]*EVInfo, error) {
kEVinfos := make([]*EVInfo, 0)
r := bytes.NewReader(src)
var b rune
var err error
// consumes all declaration info up to the opening brace that starts the array literal.
// I.E. static const struct .... {
for b, _, err = r.ReadRune(); err == nil && b != '{'; b, _, err = r.ReadRune() {
}
if err != nil {
return kEVinfos, errors.Wrap(err, "failed to begin reading the kEVinfos array")
}
for {
b, err := consumeWhiteSpace(r)
if err != nil {
return kEVinfos, err
}
switch b {
case '{':
// Begin an EVInfo object boundary.
evinfo, err := NewEVInfo(r)
if err != nil {
return kEVinfos, err
}
kEVinfos = append(kEVinfos, evinfo)
case '}':
// The end of the kEVinfo array
return kEVinfos, nil
default:
return kEVinfos, errors.New(fmt.Sprintf(`received an unexpected character while parsing the kEVInfos array, got ""%s"`, string(b)))
}
}
}