predictor/pkg/rest/oas_json_gen.go

6958 lines
157 KiB
Go

// Code generated by ogen, DO NOT EDIT.
package rest
import (
"math/bits"
"strconv"
"time"
"github.com/go-faster/errors"
"github.com/go-faster/jx"
"github.com/ogen-go/ogen/json"
"github.com/ogen-go/ogen/validate"
)
// Encode implements json.Marshaler.
func (s *ConstraintSpec) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *ConstraintSpec) encodeFields(e *jx.Encoder) {
{
e.FieldStart("type")
s.Type.Encode(e)
}
{
if s.Op.Set {
e.FieldStart("op")
s.Op.Encode(e)
}
}
{
if s.Limit.Set {
e.FieldStart("limit")
s.Limit.Encode(e)
}
}
{
if s.Action.Set {
e.FieldStart("action")
s.Action.Encode(e)
}
}
{
if s.Mode.Set {
e.FieldStart("mode")
s.Mode.Encode(e)
}
}
{
if s.Label.Set {
e.FieldStart("label")
s.Label.Encode(e)
}
}
{
if s.Vertices != nil {
e.FieldStart("vertices")
e.ArrStart()
for _, elem := range s.Vertices {
elem.Encode(e)
}
e.ArrEnd()
}
}
}
var jsonFieldsNameOfConstraintSpec = [7]string{
0: "type",
1: "op",
2: "limit",
3: "action",
4: "mode",
5: "label",
6: "vertices",
}
// Decode decodes ConstraintSpec from json.
func (s *ConstraintSpec) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ConstraintSpec to nil")
}
var requiredBitSet [1]uint8
s.setDefaults()
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "type":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Type.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"type\"")
}
case "op":
if err := func() error {
s.Op.Reset()
if err := s.Op.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"op\"")
}
case "limit":
if err := func() error {
s.Limit.Reset()
if err := s.Limit.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"limit\"")
}
case "action":
if err := func() error {
s.Action.Reset()
if err := s.Action.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"action\"")
}
case "mode":
if err := func() error {
s.Mode.Reset()
if err := s.Mode.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"mode\"")
}
case "label":
if err := func() error {
s.Label.Reset()
if err := s.Label.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"label\"")
}
case "vertices":
if err := func() error {
s.Vertices = make([]PolygonVertex, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem PolygonVertex
if err := elem.Decode(d); err != nil {
return err
}
s.Vertices = append(s.Vertices, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"vertices\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode ConstraintSpec")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000001,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfConstraintSpec) {
name = jsonFieldsNameOfConstraintSpec[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *ConstraintSpec) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ConstraintSpec) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecAction as json.
func (s ConstraintSpecAction) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes ConstraintSpecAction from json.
func (s *ConstraintSpecAction) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ConstraintSpecAction to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch ConstraintSpecAction(v) {
case ConstraintSpecActionStop:
*s = ConstraintSpecActionStop
case ConstraintSpecActionFallback:
*s = ConstraintSpecActionFallback
case ConstraintSpecActionClip:
*s = ConstraintSpecActionClip
default:
*s = ConstraintSpecAction(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s ConstraintSpecAction) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ConstraintSpecAction) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecMode as json.
func (s ConstraintSpecMode) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes ConstraintSpecMode from json.
func (s *ConstraintSpecMode) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ConstraintSpecMode to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch ConstraintSpecMode(v) {
case ConstraintSpecModeInside:
*s = ConstraintSpecModeInside
case ConstraintSpecModeOutside:
*s = ConstraintSpecModeOutside
default:
*s = ConstraintSpecMode(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s ConstraintSpecMode) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ConstraintSpecMode) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecOp as json.
func (s ConstraintSpecOp) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes ConstraintSpecOp from json.
func (s *ConstraintSpecOp) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ConstraintSpecOp to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch ConstraintSpecOp(v) {
case ConstraintSpecOpLess:
*s = ConstraintSpecOpLess
case ConstraintSpecOpLessEq:
*s = ConstraintSpecOpLessEq
case ConstraintSpecOpGreater:
*s = ConstraintSpecOpGreater
case ConstraintSpecOpGreaterEq:
*s = ConstraintSpecOpGreaterEq
case ConstraintSpecOpEqEq:
*s = ConstraintSpecOpEqEq
default:
*s = ConstraintSpecOp(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s ConstraintSpecOp) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ConstraintSpecOp) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecType as json.
func (s ConstraintSpecType) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes ConstraintSpecType from json.
func (s *ConstraintSpecType) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ConstraintSpecType to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch ConstraintSpecType(v) {
case ConstraintSpecTypeAltitude:
*s = ConstraintSpecTypeAltitude
case ConstraintSpecTypeTime:
*s = ConstraintSpecTypeTime
case ConstraintSpecTypeTerrainContact:
*s = ConstraintSpecTypeTerrainContact
case ConstraintSpecTypePolygon:
*s = ConstraintSpecTypePolygon
default:
*s = ConstraintSpecType(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s ConstraintSpecType) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ConstraintSpecType) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *Coverage) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *Coverage) encodeFields(e *jx.Encoder) {
{
e.FieldStart("region")
s.Region.Encode(e)
}
{
e.FieldStart("start_time")
json.EncodeDateTime(e, s.StartTime)
}
{
e.FieldStart("end_time")
json.EncodeDateTime(e, s.EndTime)
}
}
var jsonFieldsNameOfCoverage = [3]string{
0: "region",
1: "start_time",
2: "end_time",
}
// Decode decodes Coverage from json.
func (s *Coverage) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode Coverage to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "region":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Region.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"region\"")
}
case "start_time":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := json.DecodeDateTime(d)
s.StartTime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"start_time\"")
}
case "end_time":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := json.DecodeDateTime(d)
s.EndTime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"end_time\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode Coverage")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfCoverage) {
name = jsonFieldsNameOfCoverage[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *Coverage) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *Coverage) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *DatasetEntry) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *DatasetEntry) encodeFields(e *jx.Encoder) {
{
e.FieldStart("filename")
e.Str(s.Filename)
}
{
e.FieldStart("epoch")
json.EncodeDateTime(e, s.Epoch)
}
{
if s.Subset.Set {
e.FieldStart("subset")
s.Subset.Encode(e)
}
}
{
if s.Coverage.Set {
e.FieldStart("coverage")
s.Coverage.Encode(e)
}
}
{
e.FieldStart("loaded")
e.Bool(s.Loaded)
}
}
var jsonFieldsNameOfDatasetEntry = [5]string{
0: "filename",
1: "epoch",
2: "subset",
3: "coverage",
4: "loaded",
}
// Decode decodes DatasetEntry from json.
func (s *DatasetEntry) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DatasetEntry to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "filename":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Filename = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"filename\"")
}
case "epoch":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Epoch = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"epoch\"")
}
case "subset":
if err := func() error {
s.Subset.Reset()
if err := s.Subset.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"subset\"")
}
case "coverage":
if err := func() error {
s.Coverage.Reset()
if err := s.Coverage.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"coverage\"")
}
case "loaded":
requiredBitSet[0] |= 1 << 4
if err := func() error {
v, err := d.Bool()
s.Loaded = bool(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"loaded\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode DatasetEntry")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00010011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfDatasetEntry) {
name = jsonFieldsNameOfDatasetEntry[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *DatasetEntry) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DatasetEntry) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *DatasetInfo) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *DatasetInfo) encodeFields(e *jx.Encoder) {
{
e.FieldStart("source")
e.Str(s.Source)
}
{
e.FieldStart("epoch")
json.EncodeDateTime(e, s.Epoch)
}
}
var jsonFieldsNameOfDatasetInfo = [2]string{
0: "source",
1: "epoch",
}
// Decode decodes DatasetInfo from json.
func (s *DatasetInfo) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DatasetInfo to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "source":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Source = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"source\"")
}
case "epoch":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Epoch = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"epoch\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode DatasetInfo")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfDatasetInfo) {
name = jsonFieldsNameOfDatasetInfo[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *DatasetInfo) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DatasetInfo) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *DatasetList) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *DatasetList) encodeFields(e *jx.Encoder) {
{
e.FieldStart("source")
e.Str(s.Source)
}
{
e.FieldStart("datasets")
e.ArrStart()
for _, elem := range s.Datasets {
elem.Encode(e)
}
e.ArrEnd()
}
}
var jsonFieldsNameOfDatasetList = [2]string{
0: "source",
1: "datasets",
}
// Decode decodes DatasetList from json.
func (s *DatasetList) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DatasetList to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "source":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Source = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"source\"")
}
case "datasets":
requiredBitSet[0] |= 1 << 1
if err := func() error {
s.Datasets = make([]DatasetEntry, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem DatasetEntry
if err := elem.Decode(d); err != nil {
return err
}
s.Datasets = append(s.Datasets, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"datasets\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode DatasetList")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfDatasetList) {
name = jsonFieldsNameOfDatasetList[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *DatasetList) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DatasetList) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *DownloadAccepted) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *DownloadAccepted) encodeFields(e *jx.Encoder) {
{
e.FieldStart("job_id")
e.Str(s.JobID)
}
}
var jsonFieldsNameOfDownloadAccepted = [1]string{
0: "job_id",
}
// Decode decodes DownloadAccepted from json.
func (s *DownloadAccepted) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DownloadAccepted to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "job_id":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.JobID = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"job_id\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode DownloadAccepted")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000001,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfDownloadAccepted) {
name = jsonFieldsNameOfDownloadAccepted[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *DownloadAccepted) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DownloadAccepted) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *DownloadJob) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *DownloadJob) encodeFields(e *jx.Encoder) {
{
e.FieldStart("id")
e.Str(s.ID)
}
{
e.FieldStart("source")
e.Str(s.Source)
}
{
e.FieldStart("dataset")
e.Str(s.Dataset)
}
{
e.FieldStart("epoch")
json.EncodeDateTime(e, s.Epoch)
}
{
e.FieldStart("status")
s.Status.Encode(e)
}
{
e.FieldStart("started_at")
json.EncodeDateTime(e, s.StartedAt)
}
{
if s.EndedAt.Set {
e.FieldStart("ended_at")
s.EndedAt.Encode(e, json.EncodeDateTime)
}
}
{
if s.Error.Set {
e.FieldStart("error")
s.Error.Encode(e)
}
}
{
e.FieldStart("total_units")
e.Int(s.TotalUnits)
}
{
e.FieldStart("done_units")
e.Int(s.DoneUnits)
}
{
e.FieldStart("bytes")
e.Int64(s.Bytes)
}
}
var jsonFieldsNameOfDownloadJob = [11]string{
0: "id",
1: "source",
2: "dataset",
3: "epoch",
4: "status",
5: "started_at",
6: "ended_at",
7: "error",
8: "total_units",
9: "done_units",
10: "bytes",
}
// Decode decodes DownloadJob from json.
func (s *DownloadJob) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DownloadJob to nil")
}
var requiredBitSet [2]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "id":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.ID = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"id\"")
}
case "source":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Str()
s.Source = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"source\"")
}
case "dataset":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Str()
s.Dataset = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"dataset\"")
}
case "epoch":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Epoch = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"epoch\"")
}
case "status":
requiredBitSet[0] |= 1 << 4
if err := func() error {
if err := s.Status.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"status\"")
}
case "started_at":
requiredBitSet[0] |= 1 << 5
if err := func() error {
v, err := json.DecodeDateTime(d)
s.StartedAt = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"started_at\"")
}
case "ended_at":
if err := func() error {
s.EndedAt.Reset()
if err := s.EndedAt.Decode(d, json.DecodeDateTime); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"ended_at\"")
}
case "error":
if err := func() error {
s.Error.Reset()
if err := s.Error.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"error\"")
}
case "total_units":
requiredBitSet[1] |= 1 << 0
if err := func() error {
v, err := d.Int()
s.TotalUnits = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"total_units\"")
}
case "done_units":
requiredBitSet[1] |= 1 << 1
if err := func() error {
v, err := d.Int()
s.DoneUnits = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"done_units\"")
}
case "bytes":
requiredBitSet[1] |= 1 << 2
if err := func() error {
v, err := d.Int64()
s.Bytes = int64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"bytes\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode DownloadJob")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [2]uint8{
0b00111111,
0b00000111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfDownloadJob) {
name = jsonFieldsNameOfDownloadJob[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *DownloadJob) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DownloadJob) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes DownloadJobStatus as json.
func (s DownloadJobStatus) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes DownloadJobStatus from json.
func (s *DownloadJobStatus) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DownloadJobStatus to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch DownloadJobStatus(v) {
case DownloadJobStatusPending:
*s = DownloadJobStatusPending
case DownloadJobStatusRunning:
*s = DownloadJobStatusRunning
case DownloadJobStatusComplete:
*s = DownloadJobStatusComplete
case DownloadJobStatusFailed:
*s = DownloadJobStatusFailed
case DownloadJobStatusCancelled:
*s = DownloadJobStatusCancelled
default:
*s = DownloadJobStatus(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s DownloadJobStatus) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DownloadJobStatus) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *DownloadRequest) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *DownloadRequest) encodeFields(e *jx.Encoder) {
{
if s.Epoch.Set {
e.FieldStart("epoch")
s.Epoch.Encode(e, json.EncodeDateTime)
}
}
{
if s.Latest.Set {
e.FieldStart("latest")
s.Latest.Encode(e)
}
}
{
if s.Subset.Set {
e.FieldStart("subset")
s.Subset.Encode(e)
}
}
}
var jsonFieldsNameOfDownloadRequest = [3]string{
0: "epoch",
1: "latest",
2: "subset",
}
// Decode decodes DownloadRequest from json.
func (s *DownloadRequest) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode DownloadRequest to nil")
}
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "epoch":
if err := func() error {
s.Epoch.Reset()
if err := s.Epoch.Decode(d, json.DecodeDateTime); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"epoch\"")
}
case "latest":
if err := func() error {
s.Latest.Reset()
if err := s.Latest.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"latest\"")
}
case "subset":
if err := func() error {
s.Subset.Reset()
if err := s.Subset.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"subset\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode DownloadRequest")
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *DownloadRequest) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *DownloadRequest) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *Error) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *Error) encodeFields(e *jx.Encoder) {
{
e.FieldStart("error")
s.Error.Encode(e)
}
}
var jsonFieldsNameOfError = [1]string{
0: "error",
}
// Decode decodes Error from json.
func (s *Error) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode Error to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "error":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Error.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"error\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode Error")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000001,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfError) {
name = jsonFieldsNameOfError[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *Error) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *Error) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *ErrorError) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *ErrorError) encodeFields(e *jx.Encoder) {
{
e.FieldStart("type")
e.Str(s.Type)
}
{
e.FieldStart("description")
e.Str(s.Description)
}
}
var jsonFieldsNameOfErrorError = [2]string{
0: "type",
1: "description",
}
// Decode decodes ErrorError from json.
func (s *ErrorError) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ErrorError to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "type":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Type = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"type\"")
}
case "description":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Str()
s.Description = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"description\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode ErrorError")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfErrorError) {
name = jsonFieldsNameOfErrorError[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *ErrorError) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ErrorError) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *EventSummary) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *EventSummary) encodeFields(e *jx.Encoder) {
{
e.FieldStart("type")
e.Str(s.Type)
}
{
e.FieldStart("count")
e.Int64(s.Count)
}
{
if s.FirstTime.Set {
e.FieldStart("first_time")
s.FirstTime.Encode(e)
}
}
{
if s.LastTime.Set {
e.FieldStart("last_time")
s.LastTime.Encode(e)
}
}
{
if s.FirstState.Set {
e.FieldStart("first_state")
s.FirstState.Encode(e)
}
}
{
if s.LastState.Set {
e.FieldStart("last_state")
s.LastState.Encode(e)
}
}
{
if s.Message.Set {
e.FieldStart("message")
s.Message.Encode(e)
}
}
}
var jsonFieldsNameOfEventSummary = [7]string{
0: "type",
1: "count",
2: "first_time",
3: "last_time",
4: "first_state",
5: "last_state",
6: "message",
}
// Decode decodes EventSummary from json.
func (s *EventSummary) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode EventSummary to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "type":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Type = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"type\"")
}
case "count":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Int64()
s.Count = int64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"count\"")
}
case "first_time":
if err := func() error {
s.FirstTime.Reset()
if err := s.FirstTime.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"first_time\"")
}
case "last_time":
if err := func() error {
s.LastTime.Reset()
if err := s.LastTime.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"last_time\"")
}
case "first_state":
if err := func() error {
s.FirstState.Reset()
if err := s.FirstState.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"first_state\"")
}
case "last_state":
if err := func() error {
s.LastState.Reset()
if err := s.LastState.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"last_state\"")
}
case "message":
if err := func() error {
s.Message.Reset()
if err := s.Message.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"message\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode EventSummary")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfEventSummary) {
name = jsonFieldsNameOfEventSummary[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *EventSummary) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *EventSummary) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *GeoState) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *GeoState) encodeFields(e *jx.Encoder) {
{
e.FieldStart("lat")
e.Float64(s.Lat)
}
{
e.FieldStart("lng")
e.Float64(s.Lng)
}
{
e.FieldStart("altitude")
e.Float64(s.Altitude)
}
}
var jsonFieldsNameOfGeoState = [3]string{
0: "lat",
1: "lng",
2: "altitude",
}
// Decode decodes GeoState from json.
func (s *GeoState) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode GeoState to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "lat":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Float64()
s.Lat = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"lat\"")
}
case "lng":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.Lng = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"lng\"")
}
case "altitude":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.Altitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"altitude\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode GeoState")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfGeoState) {
name = jsonFieldsNameOfGeoState[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *GeoState) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *GeoState) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *HourRange) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *HourRange) encodeFields(e *jx.Encoder) {
{
e.FieldStart("min_hour")
e.Int(s.MinHour)
}
{
e.FieldStart("max_hour")
e.Int(s.MaxHour)
}
}
var jsonFieldsNameOfHourRange = [2]string{
0: "min_hour",
1: "max_hour",
}
// Decode decodes HourRange from json.
func (s *HourRange) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode HourRange to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "min_hour":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Int()
s.MinHour = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"min_hour\"")
}
case "max_hour":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Int()
s.MaxHour = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"max_hour\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode HourRange")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfHourRange) {
name = jsonFieldsNameOfHourRange[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *HourRange) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *HourRange) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *Launch) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *Launch) encodeFields(e *jx.Encoder) {
{
e.FieldStart("time")
json.EncodeDateTime(e, s.Time)
}
{
e.FieldStart("latitude")
e.Float64(s.Latitude)
}
{
e.FieldStart("longitude")
e.Float64(s.Longitude)
}
{
if s.Altitude.Set {
e.FieldStart("altitude")
s.Altitude.Encode(e)
}
}
}
var jsonFieldsNameOfLaunch = [4]string{
0: "time",
1: "latitude",
2: "longitude",
3: "altitude",
}
// Decode decodes Launch from json.
func (s *Launch) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode Launch to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "time":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Time = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"time\"")
}
case "latitude":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.Latitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"latitude\"")
}
case "longitude":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.Longitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"longitude\"")
}
case "altitude":
if err := func() error {
s.Altitude.Reset()
if err := s.Altitude.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"altitude\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode Launch")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfLaunch) {
name = jsonFieldsNameOfLaunch[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *Launch) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *Launch) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *ModelSpec) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *ModelSpec) encodeFields(e *jx.Encoder) {
{
e.FieldStart("type")
s.Type.Encode(e)
}
{
if s.Rate.Set {
e.FieldStart("rate")
s.Rate.Encode(e)
}
}
{
if s.SeaLevelRate.Set {
e.FieldStart("sea_level_rate")
s.SeaLevelRate.Encode(e)
}
}
{
if s.IncludeWind.Set {
e.FieldStart("include_wind")
s.IncludeWind.Encode(e)
}
}
{
if s.Segments != nil {
e.FieldStart("segments")
e.ArrStart()
for _, elem := range s.Segments {
elem.Encode(e)
}
e.ArrEnd()
}
}
}
var jsonFieldsNameOfModelSpec = [5]string{
0: "type",
1: "rate",
2: "sea_level_rate",
3: "include_wind",
4: "segments",
}
// Decode decodes ModelSpec from json.
func (s *ModelSpec) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ModelSpec to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "type":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Type.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"type\"")
}
case "rate":
if err := func() error {
s.Rate.Reset()
if err := s.Rate.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"rate\"")
}
case "sea_level_rate":
if err := func() error {
s.SeaLevelRate.Reset()
if err := s.SeaLevelRate.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"sea_level_rate\"")
}
case "include_wind":
if err := func() error {
s.IncludeWind.Reset()
if err := s.IncludeWind.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"include_wind\"")
}
case "segments":
if err := func() error {
s.Segments = make([]PiecewiseSegment, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem PiecewiseSegment
if err := elem.Decode(d); err != nil {
return err
}
s.Segments = append(s.Segments, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"segments\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode ModelSpec")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000001,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfModelSpec) {
name = jsonFieldsNameOfModelSpec[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *ModelSpec) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ModelSpec) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ModelSpecType as json.
func (s ModelSpecType) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes ModelSpecType from json.
func (s *ModelSpecType) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ModelSpecType to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch ModelSpecType(v) {
case ModelSpecTypeConstantRate:
*s = ModelSpecTypeConstantRate
case ModelSpecTypeParachuteDescent:
*s = ModelSpecTypeParachuteDescent
case ModelSpecTypePiecewise:
*s = ModelSpecTypePiecewise
case ModelSpecTypeWind:
*s = ModelSpecTypeWind
default:
*s = ModelSpecType(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s ModelSpecType) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ModelSpecType) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes bool as json.
func (o OptBool) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Bool(bool(o.Value))
}
// Decode decodes bool from json.
func (o *OptBool) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptBool to nil")
}
o.Set = true
v, err := d.Bool()
if err != nil {
return err
}
o.Value = bool(v)
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptBool) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptBool) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecAction as json.
func (o OptConstraintSpecAction) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Str(string(o.Value))
}
// Decode decodes ConstraintSpecAction from json.
func (o *OptConstraintSpecAction) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptConstraintSpecAction to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptConstraintSpecAction) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptConstraintSpecAction) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecMode as json.
func (o OptConstraintSpecMode) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Str(string(o.Value))
}
// Decode decodes ConstraintSpecMode from json.
func (o *OptConstraintSpecMode) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptConstraintSpecMode to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptConstraintSpecMode) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptConstraintSpecMode) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ConstraintSpecOp as json.
func (o OptConstraintSpecOp) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Str(string(o.Value))
}
// Decode decodes ConstraintSpecOp from json.
func (o *OptConstraintSpecOp) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptConstraintSpecOp to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptConstraintSpecOp) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptConstraintSpecOp) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes Coverage as json.
func (o OptCoverage) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes Coverage from json.
func (o *OptCoverage) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptCoverage to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptCoverage) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptCoverage) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes time.Time as json.
func (o OptDateTime) Encode(e *jx.Encoder, format func(*jx.Encoder, time.Time)) {
if !o.Set {
return
}
format(e, o.Value)
}
// Decode decodes time.Time from json.
func (o *OptDateTime) Decode(d *jx.Decoder, format func(*jx.Decoder) (time.Time, error)) error {
if o == nil {
return errors.New("invalid: unable to decode OptDateTime to nil")
}
o.Set = true
v, err := format(d)
if err != nil {
return err
}
o.Value = v
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptDateTime) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e, json.EncodeDateTime)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptDateTime) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d, json.DecodeDateTime)
}
// Encode encodes float64 as json.
func (o OptFloat64) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Float64(float64(o.Value))
}
// Decode decodes float64 from json.
func (o *OptFloat64) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptFloat64 to nil")
}
o.Set = true
v, err := d.Float64()
if err != nil {
return err
}
o.Value = float64(v)
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptFloat64) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptFloat64) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes GeoState as json.
func (o OptGeoState) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes GeoState from json.
func (o *OptGeoState) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptGeoState to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptGeoState) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptGeoState) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes HourRange as json.
func (o OptHourRange) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes HourRange from json.
func (o *OptHourRange) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptHourRange to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptHourRange) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptHourRange) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes int as json.
func (o OptInt) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Int(int(o.Value))
}
// Decode decodes int from json.
func (o *OptInt) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptInt to nil")
}
o.Set = true
v, err := d.Int()
if err != nil {
return err
}
o.Value = int(v)
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptInt) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptInt) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes Options as json.
func (o OptOptions) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes Options from json.
func (o *OptOptions) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptOptions to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptOptions) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptOptions) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PiecewiseSegmentReference as json.
func (o OptPiecewiseSegmentReference) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Str(string(o.Value))
}
// Decode decodes PiecewiseSegmentReference from json.
func (o *OptPiecewiseSegmentReference) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptPiecewiseSegmentReference to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptPiecewiseSegmentReference) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptPiecewiseSegmentReference) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionResponseRequest as json.
func (o OptPredictionResponseRequest) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes PredictionResponseRequest from json.
func (o *OptPredictionResponseRequest) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptPredictionResponseRequest to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptPredictionResponseRequest) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptPredictionResponseRequest) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionResponseWarnings as json.
func (o OptPredictionResponseWarnings) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes PredictionResponseWarnings from json.
func (o *OptPredictionResponseWarnings) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptPredictionResponseWarnings to nil")
}
o.Set = true
o.Value = make(PredictionResponseWarnings)
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptPredictionResponseWarnings) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptPredictionResponseWarnings) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionV2RequestDirection as json.
func (o OptPredictionV2RequestDirection) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Str(string(o.Value))
}
// Decode decodes PredictionV2RequestDirection from json.
func (o *OptPredictionV2RequestDirection) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptPredictionV2RequestDirection to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptPredictionV2RequestDirection) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptPredictionV2RequestDirection) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionV2Response as json.
func (o OptPredictionV2Response) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes PredictionV2Response from json.
func (o *OptPredictionV2Response) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptPredictionV2Response to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptPredictionV2Response) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptPredictionV2Response) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes Region as json.
func (o OptRegion) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes Region from json.
func (o *OptRegion) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptRegion to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptRegion) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptRegion) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes string as json.
func (o OptString) Encode(e *jx.Encoder) {
if !o.Set {
return
}
e.Str(string(o.Value))
}
// Decode decodes string from json.
func (o *OptString) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptString to nil")
}
o.Set = true
v, err := d.Str()
if err != nil {
return err
}
o.Value = string(v)
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptString) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptString) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes SubsetSpec as json.
func (o OptSubsetSpec) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes SubsetSpec from json.
func (o *OptSubsetSpec) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptSubsetSpec to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptSubsetSpec) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptSubsetSpec) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes TerminationInfo as json.
func (o OptTerminationInfo) Encode(e *jx.Encoder) {
if !o.Set {
return
}
o.Value.Encode(e)
}
// Decode decodes TerminationInfo from json.
func (o *OptTerminationInfo) Decode(d *jx.Decoder) error {
if o == nil {
return errors.New("invalid: unable to decode OptTerminationInfo to nil")
}
o.Set = true
if err := o.Value.Decode(d); err != nil {
return err
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s OptTerminationInfo) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *OptTerminationInfo) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *Options) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *Options) encodeFields(e *jx.Encoder) {
{
if s.StepSeconds.Set {
e.FieldStart("step_seconds")
s.StepSeconds.Encode(e)
}
}
{
if s.Tolerance.Set {
e.FieldStart("tolerance")
s.Tolerance.Encode(e)
}
}
}
var jsonFieldsNameOfOptions = [2]string{
0: "step_seconds",
1: "tolerance",
}
// Decode decodes Options from json.
func (s *Options) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode Options to nil")
}
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "step_seconds":
if err := func() error {
s.StepSeconds.Reset()
if err := s.StepSeconds.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"step_seconds\"")
}
case "tolerance":
if err := func() error {
s.Tolerance.Reset()
if err := s.Tolerance.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"tolerance\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode Options")
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *Options) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *Options) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PiecewiseSegment) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PiecewiseSegment) encodeFields(e *jx.Encoder) {
{
e.FieldStart("until")
e.Float64(s.Until)
}
{
e.FieldStart("rate")
e.Float64(s.Rate)
}
{
if s.Reference.Set {
e.FieldStart("reference")
s.Reference.Encode(e)
}
}
}
var jsonFieldsNameOfPiecewiseSegment = [3]string{
0: "until",
1: "rate",
2: "reference",
}
// Decode decodes PiecewiseSegment from json.
func (s *PiecewiseSegment) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PiecewiseSegment to nil")
}
var requiredBitSet [1]uint8
s.setDefaults()
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "until":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Float64()
s.Until = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"until\"")
}
case "rate":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.Rate = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"rate\"")
}
case "reference":
if err := func() error {
s.Reference.Reset()
if err := s.Reference.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"reference\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PiecewiseSegment")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPiecewiseSegment) {
name = jsonFieldsNameOfPiecewiseSegment[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PiecewiseSegment) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PiecewiseSegment) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PiecewiseSegmentReference as json.
func (s PiecewiseSegmentReference) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes PiecewiseSegmentReference from json.
func (s *PiecewiseSegmentReference) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PiecewiseSegmentReference to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch PiecewiseSegmentReference(v) {
case PiecewiseSegmentReferenceAbsolute:
*s = PiecewiseSegmentReferenceAbsolute
case PiecewiseSegmentReferenceProfileStart:
*s = PiecewiseSegmentReferenceProfileStart
case PiecewiseSegmentReferencePropagatorStart:
*s = PiecewiseSegmentReferencePropagatorStart
default:
*s = PiecewiseSegmentReference(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s PiecewiseSegmentReference) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PiecewiseSegmentReference) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PolygonVertex) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PolygonVertex) encodeFields(e *jx.Encoder) {
{
e.FieldStart("lat")
e.Float64(s.Lat)
}
{
e.FieldStart("lng")
e.Float64(s.Lng)
}
}
var jsonFieldsNameOfPolygonVertex = [2]string{
0: "lat",
1: "lng",
}
// Decode decodes PolygonVertex from json.
func (s *PolygonVertex) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PolygonVertex to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "lat":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Float64()
s.Lat = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"lat\"")
}
case "lng":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.Lng = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"lng\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PolygonVertex")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPolygonVertex) {
name = jsonFieldsNameOfPolygonVertex[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PolygonVertex) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PolygonVertex) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionJob) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionJob) encodeFields(e *jx.Encoder) {
{
e.FieldStart("id")
e.Str(s.ID)
}
{
e.FieldStart("status")
s.Status.Encode(e)
}
{
e.FieldStart("created_at")
json.EncodeDateTime(e, s.CreatedAt)
}
{
if s.StartedAt.Set {
e.FieldStart("started_at")
s.StartedAt.Encode(e, json.EncodeDateTime)
}
}
{
if s.CompletedAt.Set {
e.FieldStart("completed_at")
s.CompletedAt.Encode(e, json.EncodeDateTime)
}
}
{
if s.Error.Set {
e.FieldStart("error")
s.Error.Encode(e)
}
}
{
if s.Result.Set {
e.FieldStart("result")
s.Result.Encode(e)
}
}
}
var jsonFieldsNameOfPredictionJob = [7]string{
0: "id",
1: "status",
2: "created_at",
3: "started_at",
4: "completed_at",
5: "error",
6: "result",
}
// Decode decodes PredictionJob from json.
func (s *PredictionJob) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionJob to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "id":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.ID = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"id\"")
}
case "status":
requiredBitSet[0] |= 1 << 1
if err := func() error {
if err := s.Status.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"status\"")
}
case "created_at":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := json.DecodeDateTime(d)
s.CreatedAt = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"created_at\"")
}
case "started_at":
if err := func() error {
s.StartedAt.Reset()
if err := s.StartedAt.Decode(d, json.DecodeDateTime); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"started_at\"")
}
case "completed_at":
if err := func() error {
s.CompletedAt.Reset()
if err := s.CompletedAt.Decode(d, json.DecodeDateTime); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"completed_at\"")
}
case "error":
if err := func() error {
s.Error.Reset()
if err := s.Error.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"error\"")
}
case "result":
if err := func() error {
s.Result.Reset()
if err := s.Result.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"result\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionJob")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPredictionJob) {
name = jsonFieldsNameOfPredictionJob[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionJob) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionJob) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionJobStatus as json.
func (s PredictionJobStatus) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes PredictionJobStatus from json.
func (s *PredictionJobStatus) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionJobStatus to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch PredictionJobStatus(v) {
case PredictionJobStatusPending:
*s = PredictionJobStatusPending
case PredictionJobStatusRunning:
*s = PredictionJobStatusRunning
case PredictionJobStatusComplete:
*s = PredictionJobStatusComplete
case PredictionJobStatusFailed:
*s = PredictionJobStatusFailed
case PredictionJobStatusCancelled:
*s = PredictionJobStatusCancelled
default:
*s = PredictionJobStatus(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s PredictionJobStatus) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionJobStatus) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionResponse) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionResponse) encodeFields(e *jx.Encoder) {
{
if s.Request.Set {
e.FieldStart("request")
s.Request.Encode(e)
}
}
{
e.FieldStart("prediction")
e.ArrStart()
for _, elem := range s.Prediction {
elem.Encode(e)
}
e.ArrEnd()
}
{
e.FieldStart("metadata")
s.Metadata.Encode(e)
}
{
if s.Warnings.Set {
e.FieldStart("warnings")
s.Warnings.Encode(e)
}
}
}
var jsonFieldsNameOfPredictionResponse = [4]string{
0: "request",
1: "prediction",
2: "metadata",
3: "warnings",
}
// Decode decodes PredictionResponse from json.
func (s *PredictionResponse) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionResponse to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "request":
if err := func() error {
s.Request.Reset()
if err := s.Request.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"request\"")
}
case "prediction":
requiredBitSet[0] |= 1 << 1
if err := func() error {
s.Prediction = make([]PredictionResponsePredictionItem, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem PredictionResponsePredictionItem
if err := elem.Decode(d); err != nil {
return err
}
s.Prediction = append(s.Prediction, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"prediction\"")
}
case "metadata":
requiredBitSet[0] |= 1 << 2
if err := func() error {
if err := s.Metadata.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"metadata\"")
}
case "warnings":
if err := func() error {
s.Warnings.Reset()
if err := s.Warnings.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"warnings\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionResponse")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000110,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPredictionResponse) {
name = jsonFieldsNameOfPredictionResponse[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionResponse) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionResponse) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionResponseMetadata) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionResponseMetadata) encodeFields(e *jx.Encoder) {
{
e.FieldStart("start_datetime")
json.EncodeDateTime(e, s.StartDatetime)
}
{
e.FieldStart("complete_datetime")
json.EncodeDateTime(e, s.CompleteDatetime)
}
}
var jsonFieldsNameOfPredictionResponseMetadata = [2]string{
0: "start_datetime",
1: "complete_datetime",
}
// Decode decodes PredictionResponseMetadata from json.
func (s *PredictionResponseMetadata) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionResponseMetadata to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "start_datetime":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := json.DecodeDateTime(d)
s.StartDatetime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"start_datetime\"")
}
case "complete_datetime":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := json.DecodeDateTime(d)
s.CompleteDatetime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"complete_datetime\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionResponseMetadata")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPredictionResponseMetadata) {
name = jsonFieldsNameOfPredictionResponseMetadata[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionResponseMetadata) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionResponseMetadata) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionResponsePredictionItem) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionResponsePredictionItem) encodeFields(e *jx.Encoder) {
{
e.FieldStart("stage")
s.Stage.Encode(e)
}
{
e.FieldStart("trajectory")
e.ArrStart()
for _, elem := range s.Trajectory {
elem.Encode(e)
}
e.ArrEnd()
}
}
var jsonFieldsNameOfPredictionResponsePredictionItem = [2]string{
0: "stage",
1: "trajectory",
}
// Decode decodes PredictionResponsePredictionItem from json.
func (s *PredictionResponsePredictionItem) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionResponsePredictionItem to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "stage":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Stage.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"stage\"")
}
case "trajectory":
requiredBitSet[0] |= 1 << 1
if err := func() error {
s.Trajectory = make([]TawhiriPoint, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem TawhiriPoint
if err := elem.Decode(d); err != nil {
return err
}
s.Trajectory = append(s.Trajectory, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"trajectory\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionResponsePredictionItem")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPredictionResponsePredictionItem) {
name = jsonFieldsNameOfPredictionResponsePredictionItem[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionResponsePredictionItem) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionResponsePredictionItem) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionResponsePredictionItemStage as json.
func (s PredictionResponsePredictionItemStage) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes PredictionResponsePredictionItemStage from json.
func (s *PredictionResponsePredictionItemStage) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionResponsePredictionItemStage to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch PredictionResponsePredictionItemStage(v) {
case PredictionResponsePredictionItemStageAscent:
*s = PredictionResponsePredictionItemStageAscent
case PredictionResponsePredictionItemStageDescent:
*s = PredictionResponsePredictionItemStageDescent
case PredictionResponsePredictionItemStageFloat:
*s = PredictionResponsePredictionItemStageFloat
default:
*s = PredictionResponsePredictionItemStage(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s PredictionResponsePredictionItemStage) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionResponsePredictionItemStage) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionResponseRequest) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionResponseRequest) encodeFields(e *jx.Encoder) {
{
if s.Dataset.Set {
e.FieldStart("dataset")
s.Dataset.Encode(e)
}
}
{
if s.LaunchLatitude.Set {
e.FieldStart("launch_latitude")
s.LaunchLatitude.Encode(e)
}
}
{
if s.LaunchLongitude.Set {
e.FieldStart("launch_longitude")
s.LaunchLongitude.Encode(e)
}
}
{
if s.LaunchDatetime.Set {
e.FieldStart("launch_datetime")
s.LaunchDatetime.Encode(e)
}
}
{
if s.LaunchAltitude.Set {
e.FieldStart("launch_altitude")
s.LaunchAltitude.Encode(e)
}
}
{
if s.Profile.Set {
e.FieldStart("profile")
s.Profile.Encode(e)
}
}
{
if s.AscentRate.Set {
e.FieldStart("ascent_rate")
s.AscentRate.Encode(e)
}
}
{
if s.BurstAltitude.Set {
e.FieldStart("burst_altitude")
s.BurstAltitude.Encode(e)
}
}
{
if s.DescentRate.Set {
e.FieldStart("descent_rate")
s.DescentRate.Encode(e)
}
}
}
var jsonFieldsNameOfPredictionResponseRequest = [9]string{
0: "dataset",
1: "launch_latitude",
2: "launch_longitude",
3: "launch_datetime",
4: "launch_altitude",
5: "profile",
6: "ascent_rate",
7: "burst_altitude",
8: "descent_rate",
}
// Decode decodes PredictionResponseRequest from json.
func (s *PredictionResponseRequest) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionResponseRequest to nil")
}
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "dataset":
if err := func() error {
s.Dataset.Reset()
if err := s.Dataset.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"dataset\"")
}
case "launch_latitude":
if err := func() error {
s.LaunchLatitude.Reset()
if err := s.LaunchLatitude.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"launch_latitude\"")
}
case "launch_longitude":
if err := func() error {
s.LaunchLongitude.Reset()
if err := s.LaunchLongitude.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"launch_longitude\"")
}
case "launch_datetime":
if err := func() error {
s.LaunchDatetime.Reset()
if err := s.LaunchDatetime.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"launch_datetime\"")
}
case "launch_altitude":
if err := func() error {
s.LaunchAltitude.Reset()
if err := s.LaunchAltitude.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"launch_altitude\"")
}
case "profile":
if err := func() error {
s.Profile.Reset()
if err := s.Profile.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"profile\"")
}
case "ascent_rate":
if err := func() error {
s.AscentRate.Reset()
if err := s.AscentRate.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"ascent_rate\"")
}
case "burst_altitude":
if err := func() error {
s.BurstAltitude.Reset()
if err := s.BurstAltitude.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"burst_altitude\"")
}
case "descent_rate":
if err := func() error {
s.DescentRate.Reset()
if err := s.DescentRate.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"descent_rate\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionResponseRequest")
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionResponseRequest) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionResponseRequest) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s PredictionResponseWarnings) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields implements json.Marshaler.
func (s PredictionResponseWarnings) encodeFields(e *jx.Encoder) {
for k, elem := range s {
e.FieldStart(k)
if len(elem) != 0 {
e.Raw(elem)
}
}
}
// Decode decodes PredictionResponseWarnings from json.
func (s *PredictionResponseWarnings) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionResponseWarnings to nil")
}
m := s.init()
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
var elem jx.Raw
if err := func() error {
v, err := d.RawAppend(nil)
elem = jx.Raw(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrapf(err, "decode field %q", k)
}
m[string(k)] = elem
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionResponseWarnings")
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s PredictionResponseWarnings) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionResponseWarnings) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionV2Request) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionV2Request) encodeFields(e *jx.Encoder) {
{
e.FieldStart("launch")
s.Launch.Encode(e)
}
{
if s.Direction.Set {
e.FieldStart("direction")
s.Direction.Encode(e)
}
}
{
e.FieldStart("profile")
e.ArrStart()
for _, elem := range s.Profile {
elem.Encode(e)
}
e.ArrEnd()
}
{
if s.Globals != nil {
e.FieldStart("globals")
e.ArrStart()
for _, elem := range s.Globals {
elem.Encode(e)
}
e.ArrEnd()
}
}
{
if s.Options.Set {
e.FieldStart("options")
s.Options.Encode(e)
}
}
}
var jsonFieldsNameOfPredictionV2Request = [5]string{
0: "launch",
1: "direction",
2: "profile",
3: "globals",
4: "options",
}
// Decode decodes PredictionV2Request from json.
func (s *PredictionV2Request) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionV2Request to nil")
}
var requiredBitSet [1]uint8
s.setDefaults()
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "launch":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Launch.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"launch\"")
}
case "direction":
if err := func() error {
s.Direction.Reset()
if err := s.Direction.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"direction\"")
}
case "profile":
requiredBitSet[0] |= 1 << 2
if err := func() error {
s.Profile = make([]StageSpec, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem StageSpec
if err := elem.Decode(d); err != nil {
return err
}
s.Profile = append(s.Profile, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"profile\"")
}
case "globals":
if err := func() error {
s.Globals = make([]ConstraintSpec, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem ConstraintSpec
if err := elem.Decode(d); err != nil {
return err
}
s.Globals = append(s.Globals, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"globals\"")
}
case "options":
if err := func() error {
s.Options.Reset()
if err := s.Options.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"options\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionV2Request")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000101,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPredictionV2Request) {
name = jsonFieldsNameOfPredictionV2Request[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionV2Request) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionV2Request) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes PredictionV2RequestDirection as json.
func (s PredictionV2RequestDirection) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes PredictionV2RequestDirection from json.
func (s *PredictionV2RequestDirection) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionV2RequestDirection to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch PredictionV2RequestDirection(v) {
case PredictionV2RequestDirectionForward:
*s = PredictionV2RequestDirectionForward
case PredictionV2RequestDirectionReverse:
*s = PredictionV2RequestDirectionReverse
default:
*s = PredictionV2RequestDirection(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s PredictionV2RequestDirection) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionV2RequestDirection) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *PredictionV2Response) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *PredictionV2Response) encodeFields(e *jx.Encoder) {
{
e.FieldStart("stages")
e.ArrStart()
for _, elem := range s.Stages {
elem.Encode(e)
}
e.ArrEnd()
}
{
if s.Events != nil {
e.FieldStart("events")
e.ArrStart()
for _, elem := range s.Events {
elem.Encode(e)
}
e.ArrEnd()
}
}
{
e.FieldStart("dataset")
s.Dataset.Encode(e)
}
{
e.FieldStart("started_at")
json.EncodeDateTime(e, s.StartedAt)
}
{
e.FieldStart("completed_at")
json.EncodeDateTime(e, s.CompletedAt)
}
}
var jsonFieldsNameOfPredictionV2Response = [5]string{
0: "stages",
1: "events",
2: "dataset",
3: "started_at",
4: "completed_at",
}
// Decode decodes PredictionV2Response from json.
func (s *PredictionV2Response) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode PredictionV2Response to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "stages":
requiredBitSet[0] |= 1 << 0
if err := func() error {
s.Stages = make([]StageResult, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem StageResult
if err := elem.Decode(d); err != nil {
return err
}
s.Stages = append(s.Stages, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"stages\"")
}
case "events":
if err := func() error {
s.Events = make([]EventSummary, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem EventSummary
if err := elem.Decode(d); err != nil {
return err
}
s.Events = append(s.Events, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"events\"")
}
case "dataset":
requiredBitSet[0] |= 1 << 2
if err := func() error {
if err := s.Dataset.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"dataset\"")
}
case "started_at":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := json.DecodeDateTime(d)
s.StartedAt = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"started_at\"")
}
case "completed_at":
requiredBitSet[0] |= 1 << 4
if err := func() error {
v, err := json.DecodeDateTime(d)
s.CompletedAt = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"completed_at\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode PredictionV2Response")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00011101,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfPredictionV2Response) {
name = jsonFieldsNameOfPredictionV2Response[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *PredictionV2Response) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *PredictionV2Response) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *ReadinessResponse) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *ReadinessResponse) encodeFields(e *jx.Encoder) {
{
e.FieldStart("status")
s.Status.Encode(e)
}
{
if s.DatasetTime.Set {
e.FieldStart("dataset_time")
s.DatasetTime.Encode(e, json.EncodeDateTime)
}
}
{
if s.ErrorMessage.Set {
e.FieldStart("error_message")
s.ErrorMessage.Encode(e)
}
}
}
var jsonFieldsNameOfReadinessResponse = [3]string{
0: "status",
1: "dataset_time",
2: "error_message",
}
// Decode decodes ReadinessResponse from json.
func (s *ReadinessResponse) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ReadinessResponse to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "status":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Status.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"status\"")
}
case "dataset_time":
if err := func() error {
s.DatasetTime.Reset()
if err := s.DatasetTime.Decode(d, json.DecodeDateTime); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"dataset_time\"")
}
case "error_message":
if err := func() error {
s.ErrorMessage.Reset()
if err := s.ErrorMessage.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"error_message\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode ReadinessResponse")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000001,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfReadinessResponse) {
name = jsonFieldsNameOfReadinessResponse[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *ReadinessResponse) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ReadinessResponse) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes ReadinessResponseStatus as json.
func (s ReadinessResponseStatus) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes ReadinessResponseStatus from json.
func (s *ReadinessResponseStatus) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode ReadinessResponseStatus to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch ReadinessResponseStatus(v) {
case ReadinessResponseStatusOk:
*s = ReadinessResponseStatusOk
case ReadinessResponseStatusNotReady:
*s = ReadinessResponseStatusNotReady
case ReadinessResponseStatusError:
*s = ReadinessResponseStatusError
default:
*s = ReadinessResponseStatus(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s ReadinessResponseStatus) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *ReadinessResponseStatus) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *Region) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *Region) encodeFields(e *jx.Encoder) {
{
e.FieldStart("min_lat")
e.Float64(s.MinLat)
}
{
e.FieldStart("max_lat")
e.Float64(s.MaxLat)
}
{
e.FieldStart("min_lng")
e.Float64(s.MinLng)
}
{
e.FieldStart("max_lng")
e.Float64(s.MaxLng)
}
}
var jsonFieldsNameOfRegion = [4]string{
0: "min_lat",
1: "max_lat",
2: "min_lng",
3: "max_lng",
}
// Decode decodes Region from json.
func (s *Region) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode Region to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "min_lat":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Float64()
s.MinLat = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"min_lat\"")
}
case "max_lat":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.MaxLat = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"max_lat\"")
}
case "min_lng":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.MinLng = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"min_lng\"")
}
case "max_lng":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := d.Float64()
s.MaxLng = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"max_lng\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode Region")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00001111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfRegion) {
name = jsonFieldsNameOfRegion[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *Region) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *Region) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *StageResult) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *StageResult) encodeFields(e *jx.Encoder) {
{
e.FieldStart("name")
e.Str(s.Name)
}
{
e.FieldStart("outcome")
s.Outcome.Encode(e)
}
{
if s.Constraint.Set {
e.FieldStart("constraint")
s.Constraint.Encode(e)
}
}
{
if s.Termination.Set {
e.FieldStart("termination")
s.Termination.Encode(e)
}
}
{
if s.Events != nil {
e.FieldStart("events")
e.ArrStart()
for _, elem := range s.Events {
elem.Encode(e)
}
e.ArrEnd()
}
}
{
e.FieldStart("trajectory")
e.ArrStart()
for _, elem := range s.Trajectory {
elem.Encode(e)
}
e.ArrEnd()
}
}
var jsonFieldsNameOfStageResult = [6]string{
0: "name",
1: "outcome",
2: "constraint",
3: "termination",
4: "events",
5: "trajectory",
}
// Decode decodes StageResult from json.
func (s *StageResult) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode StageResult to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "name":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Name = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"name\"")
}
case "outcome":
requiredBitSet[0] |= 1 << 1
if err := func() error {
if err := s.Outcome.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"outcome\"")
}
case "constraint":
if err := func() error {
s.Constraint.Reset()
if err := s.Constraint.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"constraint\"")
}
case "termination":
if err := func() error {
s.Termination.Reset()
if err := s.Termination.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"termination\"")
}
case "events":
if err := func() error {
s.Events = make([]EventSummary, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem EventSummary
if err := elem.Decode(d); err != nil {
return err
}
s.Events = append(s.Events, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"events\"")
}
case "trajectory":
requiredBitSet[0] |= 1 << 5
if err := func() error {
s.Trajectory = make([]TrajectoryPoint, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem TrajectoryPoint
if err := elem.Decode(d); err != nil {
return err
}
s.Trajectory = append(s.Trajectory, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"trajectory\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode StageResult")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00100011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfStageResult) {
name = jsonFieldsNameOfStageResult[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *StageResult) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *StageResult) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode encodes StageResultOutcome as json.
func (s StageResultOutcome) Encode(e *jx.Encoder) {
e.Str(string(s))
}
// Decode decodes StageResultOutcome from json.
func (s *StageResultOutcome) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode StageResultOutcome to nil")
}
v, err := d.StrBytes()
if err != nil {
return err
}
// Try to use constant string.
switch StageResultOutcome(v) {
case StageResultOutcomeStopped:
*s = StageResultOutcomeStopped
case StageResultOutcomeFallback:
*s = StageResultOutcomeFallback
case StageResultOutcomeContinued:
*s = StageResultOutcomeContinued
default:
*s = StageResultOutcome(v)
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s StageResultOutcome) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *StageResultOutcome) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *StageSpec) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *StageSpec) encodeFields(e *jx.Encoder) {
{
e.FieldStart("name")
e.Str(s.Name)
}
{
e.FieldStart("model")
s.Model.Encode(e)
}
{
if s.Constraints != nil {
e.FieldStart("constraints")
e.ArrStart()
for _, elem := range s.Constraints {
elem.Encode(e)
}
e.ArrEnd()
}
}
{
if s.FallbackIndex.Set {
e.FieldStart("fallback_index")
s.FallbackIndex.Encode(e)
}
}
}
var jsonFieldsNameOfStageSpec = [4]string{
0: "name",
1: "model",
2: "constraints",
3: "fallback_index",
}
// Decode decodes StageSpec from json.
func (s *StageSpec) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode StageSpec to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "name":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Name = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"name\"")
}
case "model":
requiredBitSet[0] |= 1 << 1
if err := func() error {
if err := s.Model.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"model\"")
}
case "constraints":
if err := func() error {
s.Constraints = make([]ConstraintSpec, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem ConstraintSpec
if err := elem.Decode(d); err != nil {
return err
}
s.Constraints = append(s.Constraints, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"constraints\"")
}
case "fallback_index":
if err := func() error {
s.FallbackIndex.Reset()
if err := s.FallbackIndex.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"fallback_index\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode StageSpec")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfStageSpec) {
name = jsonFieldsNameOfStageSpec[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *StageSpec) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *StageSpec) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *StatusResponse) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *StatusResponse) encodeFields(e *jx.Encoder) {
{
e.FieldStart("source")
e.Str(s.Source)
}
{
e.FieldStart("uptime")
e.Str(s.Uptime)
}
{
e.FieldStart("goroutines")
e.Int(s.Goroutines)
}
{
e.FieldStart("memory_mb")
e.Int64(s.MemoryMB)
}
{
e.FieldStart("jobs_by_status")
s.JobsByStatus.Encode(e)
}
{
e.FieldStart("stored_datasets")
e.Int(s.StoredDatasets)
}
{
e.FieldStart("loaded_datasets")
e.Int(s.LoadedDatasets)
}
}
var jsonFieldsNameOfStatusResponse = [7]string{
0: "source",
1: "uptime",
2: "goroutines",
3: "memory_mb",
4: "jobs_by_status",
5: "stored_datasets",
6: "loaded_datasets",
}
// Decode decodes StatusResponse from json.
func (s *StatusResponse) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode StatusResponse to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "source":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Source = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"source\"")
}
case "uptime":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Str()
s.Uptime = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"uptime\"")
}
case "goroutines":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Int()
s.Goroutines = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"goroutines\"")
}
case "memory_mb":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := d.Int64()
s.MemoryMB = int64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"memory_mb\"")
}
case "jobs_by_status":
requiredBitSet[0] |= 1 << 4
if err := func() error {
if err := s.JobsByStatus.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"jobs_by_status\"")
}
case "stored_datasets":
requiredBitSet[0] |= 1 << 5
if err := func() error {
v, err := d.Int()
s.StoredDatasets = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"stored_datasets\"")
}
case "loaded_datasets":
requiredBitSet[0] |= 1 << 6
if err := func() error {
v, err := d.Int()
s.LoadedDatasets = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"loaded_datasets\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode StatusResponse")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b01111111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfStatusResponse) {
name = jsonFieldsNameOfStatusResponse[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *StatusResponse) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *StatusResponse) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s StatusResponseJobsByStatus) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields implements json.Marshaler.
func (s StatusResponseJobsByStatus) encodeFields(e *jx.Encoder) {
for k, elem := range s {
e.FieldStart(k)
e.Int(elem)
}
}
// Decode decodes StatusResponseJobsByStatus from json.
func (s *StatusResponseJobsByStatus) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode StatusResponseJobsByStatus to nil")
}
m := s.init()
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
var elem int
if err := func() error {
v, err := d.Int()
elem = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrapf(err, "decode field %q", k)
}
m[string(k)] = elem
return nil
}); err != nil {
return errors.Wrap(err, "decode StatusResponseJobsByStatus")
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s StatusResponseJobsByStatus) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *StatusResponseJobsByStatus) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *SubsetSpec) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *SubsetSpec) encodeFields(e *jx.Encoder) {
{
if s.Region.Set {
e.FieldStart("region")
s.Region.Encode(e)
}
}
{
if s.HourRange.Set {
e.FieldStart("hour_range")
s.HourRange.Encode(e)
}
}
{
if s.Members != nil {
e.FieldStart("members")
e.ArrStart()
for _, elem := range s.Members {
e.Int(elem)
}
e.ArrEnd()
}
}
}
var jsonFieldsNameOfSubsetSpec = [3]string{
0: "region",
1: "hour_range",
2: "members",
}
// Decode decodes SubsetSpec from json.
func (s *SubsetSpec) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode SubsetSpec to nil")
}
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "region":
if err := func() error {
s.Region.Reset()
if err := s.Region.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"region\"")
}
case "hour_range":
if err := func() error {
s.HourRange.Reset()
if err := s.HourRange.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"hour_range\"")
}
case "members":
if err := func() error {
s.Members = make([]int, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem int
v, err := d.Int()
elem = int(v)
if err != nil {
return err
}
s.Members = append(s.Members, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"members\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode SubsetSpec")
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *SubsetSpec) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *SubsetSpec) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *TawhiriPoint) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *TawhiriPoint) encodeFields(e *jx.Encoder) {
{
e.FieldStart("datetime")
json.EncodeDateTime(e, s.Datetime)
}
{
e.FieldStart("latitude")
e.Float64(s.Latitude)
}
{
e.FieldStart("longitude")
e.Float64(s.Longitude)
}
{
e.FieldStart("altitude")
e.Float64(s.Altitude)
}
}
var jsonFieldsNameOfTawhiriPoint = [4]string{
0: "datetime",
1: "latitude",
2: "longitude",
3: "altitude",
}
// Decode decodes TawhiriPoint from json.
func (s *TawhiriPoint) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode TawhiriPoint to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "datetime":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Datetime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"datetime\"")
}
case "latitude":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.Latitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"latitude\"")
}
case "longitude":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.Longitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"longitude\"")
}
case "altitude":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := d.Float64()
s.Altitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"altitude\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode TawhiriPoint")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00001111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfTawhiriPoint) {
name = jsonFieldsNameOfTawhiriPoint[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *TawhiriPoint) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *TawhiriPoint) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *TerminationInfo) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *TerminationInfo) encodeFields(e *jx.Encoder) {
{
e.FieldStart("violation_time")
json.EncodeDateTime(e, s.ViolationTime)
}
{
e.FieldStart("violation_state")
s.ViolationState.Encode(e)
}
{
e.FieldStart("refined_time")
json.EncodeDateTime(e, s.RefinedTime)
}
{
e.FieldStart("refined_state")
s.RefinedState.Encode(e)
}
}
var jsonFieldsNameOfTerminationInfo = [4]string{
0: "violation_time",
1: "violation_state",
2: "refined_time",
3: "refined_state",
}
// Decode decodes TerminationInfo from json.
func (s *TerminationInfo) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode TerminationInfo to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "violation_time":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := json.DecodeDateTime(d)
s.ViolationTime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"violation_time\"")
}
case "violation_state":
requiredBitSet[0] |= 1 << 1
if err := func() error {
if err := s.ViolationState.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"violation_state\"")
}
case "refined_time":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := json.DecodeDateTime(d)
s.RefinedTime = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"refined_time\"")
}
case "refined_state":
requiredBitSet[0] |= 1 << 3
if err := func() error {
if err := s.RefinedState.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"refined_state\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode TerminationInfo")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00001111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfTerminationInfo) {
name = jsonFieldsNameOfTerminationInfo[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *TerminationInfo) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *TerminationInfo) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *TrajectoryPoint) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *TrajectoryPoint) encodeFields(e *jx.Encoder) {
{
e.FieldStart("time")
json.EncodeDateTime(e, s.Time)
}
{
e.FieldStart("latitude")
e.Float64(s.Latitude)
}
{
e.FieldStart("longitude")
e.Float64(s.Longitude)
}
{
e.FieldStart("altitude")
e.Float64(s.Altitude)
}
}
var jsonFieldsNameOfTrajectoryPoint = [4]string{
0: "time",
1: "latitude",
2: "longitude",
3: "altitude",
}
// Decode decodes TrajectoryPoint from json.
func (s *TrajectoryPoint) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode TrajectoryPoint to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "time":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Time = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"time\"")
}
case "latitude":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.Latitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"latitude\"")
}
case "longitude":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.Longitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"longitude\"")
}
case "altitude":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := d.Float64()
s.Altitude = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"altitude\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode TrajectoryPoint")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00001111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfTrajectoryPoint) {
name = jsonFieldsNameOfTrajectoryPoint[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *TrajectoryPoint) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *TrajectoryPoint) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *WindComponent) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *WindComponent) encodeFields(e *jx.Encoder) {
{
e.FieldStart("header")
s.Header.Encode(e)
}
{
e.FieldStart("data")
e.ArrStart()
for _, elem := range s.Data {
e.Float64(elem)
}
e.ArrEnd()
}
}
var jsonFieldsNameOfWindComponent = [2]string{
0: "header",
1: "data",
}
// Decode decodes WindComponent from json.
func (s *WindComponent) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode WindComponent to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "header":
requiredBitSet[0] |= 1 << 0
if err := func() error {
if err := s.Header.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"header\"")
}
case "data":
requiredBitSet[0] |= 1 << 1
if err := func() error {
s.Data = make([]float64, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem float64
v, err := d.Float64()
elem = float64(v)
if err != nil {
return err
}
s.Data = append(s.Data, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"data\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode WindComponent")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00000011,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfWindComponent) {
name = jsonFieldsNameOfWindComponent[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *WindComponent) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *WindComponent) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *WindHeader) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *WindHeader) encodeFields(e *jx.Encoder) {
{
e.FieldStart("parameterCategory")
e.Int(s.ParameterCategory)
}
{
e.FieldStart("parameterNumber")
e.Int(s.ParameterNumber)
}
{
if s.ParameterNumberName.Set {
e.FieldStart("parameterNumberName")
s.ParameterNumberName.Encode(e)
}
}
{
if s.ParameterUnit.Set {
e.FieldStart("parameterUnit")
s.ParameterUnit.Encode(e)
}
}
{
e.FieldStart("nx")
e.Int(s.Nx)
}
{
e.FieldStart("ny")
e.Int(s.Ny)
}
{
e.FieldStart("lo1")
e.Float64(s.Lo1)
}
{
e.FieldStart("la1")
e.Float64(s.La1)
}
{
e.FieldStart("lo2")
e.Float64(s.Lo2)
}
{
e.FieldStart("la2")
e.Float64(s.La2)
}
{
e.FieldStart("dx")
e.Float64(s.Dx)
}
{
e.FieldStart("dy")
e.Float64(s.Dy)
}
{
e.FieldStart("refTime")
e.Str(s.RefTime)
}
{
e.FieldStart("forecastTime")
e.Int(s.ForecastTime)
}
}
var jsonFieldsNameOfWindHeader = [14]string{
0: "parameterCategory",
1: "parameterNumber",
2: "parameterNumberName",
3: "parameterUnit",
4: "nx",
5: "ny",
6: "lo1",
7: "la1",
8: "lo2",
9: "la2",
10: "dx",
11: "dy",
12: "refTime",
13: "forecastTime",
}
// Decode decodes WindHeader from json.
func (s *WindHeader) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode WindHeader to nil")
}
var requiredBitSet [2]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "parameterCategory":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Int()
s.ParameterCategory = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"parameterCategory\"")
}
case "parameterNumber":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := d.Int()
s.ParameterNumber = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"parameterNumber\"")
}
case "parameterNumberName":
if err := func() error {
s.ParameterNumberName.Reset()
if err := s.ParameterNumberName.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"parameterNumberName\"")
}
case "parameterUnit":
if err := func() error {
s.ParameterUnit.Reset()
if err := s.ParameterUnit.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"parameterUnit\"")
}
case "nx":
requiredBitSet[0] |= 1 << 4
if err := func() error {
v, err := d.Int()
s.Nx = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"nx\"")
}
case "ny":
requiredBitSet[0] |= 1 << 5
if err := func() error {
v, err := d.Int()
s.Ny = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"ny\"")
}
case "lo1":
requiredBitSet[0] |= 1 << 6
if err := func() error {
v, err := d.Float64()
s.Lo1 = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"lo1\"")
}
case "la1":
requiredBitSet[0] |= 1 << 7
if err := func() error {
v, err := d.Float64()
s.La1 = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"la1\"")
}
case "lo2":
requiredBitSet[1] |= 1 << 0
if err := func() error {
v, err := d.Float64()
s.Lo2 = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"lo2\"")
}
case "la2":
requiredBitSet[1] |= 1 << 1
if err := func() error {
v, err := d.Float64()
s.La2 = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"la2\"")
}
case "dx":
requiredBitSet[1] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.Dx = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"dx\"")
}
case "dy":
requiredBitSet[1] |= 1 << 3
if err := func() error {
v, err := d.Float64()
s.Dy = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"dy\"")
}
case "refTime":
requiredBitSet[1] |= 1 << 4
if err := func() error {
v, err := d.Str()
s.RefTime = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"refTime\"")
}
case "forecastTime":
requiredBitSet[1] |= 1 << 5
if err := func() error {
v, err := d.Int()
s.ForecastTime = int(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"forecastTime\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode WindHeader")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [2]uint8{
0b11110011,
0b00111111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfWindHeader) {
name = jsonFieldsNameOfWindHeader[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *WindHeader) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *WindHeader) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}
// Encode implements json.Marshaler.
func (s *WindMeta) Encode(e *jx.Encoder) {
e.ObjStart()
s.encodeFields(e)
e.ObjEnd()
}
// encodeFields encodes fields.
func (s *WindMeta) encodeFields(e *jx.Encoder) {
{
e.FieldStart("source")
e.Str(s.Source)
}
{
e.FieldStart("epoch")
json.EncodeDateTime(e, s.Epoch)
}
{
e.FieldStart("default_step")
e.Float64(s.DefaultStep)
}
{
e.FieldStart("min_step")
e.Float64(s.MinStep)
}
{
e.FieldStart("suggested_altitudes")
e.ArrStart()
for _, elem := range s.SuggestedAltitudes {
e.Int(elem)
}
e.ArrEnd()
}
{
e.FieldStart("bbox")
s.Bbox.Encode(e)
}
}
var jsonFieldsNameOfWindMeta = [6]string{
0: "source",
1: "epoch",
2: "default_step",
3: "min_step",
4: "suggested_altitudes",
5: "bbox",
}
// Decode decodes WindMeta from json.
func (s *WindMeta) Decode(d *jx.Decoder) error {
if s == nil {
return errors.New("invalid: unable to decode WindMeta to nil")
}
var requiredBitSet [1]uint8
if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error {
switch string(k) {
case "source":
requiredBitSet[0] |= 1 << 0
if err := func() error {
v, err := d.Str()
s.Source = string(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"source\"")
}
case "epoch":
requiredBitSet[0] |= 1 << 1
if err := func() error {
v, err := json.DecodeDateTime(d)
s.Epoch = v
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"epoch\"")
}
case "default_step":
requiredBitSet[0] |= 1 << 2
if err := func() error {
v, err := d.Float64()
s.DefaultStep = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"default_step\"")
}
case "min_step":
requiredBitSet[0] |= 1 << 3
if err := func() error {
v, err := d.Float64()
s.MinStep = float64(v)
if err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"min_step\"")
}
case "suggested_altitudes":
requiredBitSet[0] |= 1 << 4
if err := func() error {
s.SuggestedAltitudes = make([]int, 0)
if err := d.Arr(func(d *jx.Decoder) error {
var elem int
v, err := d.Int()
elem = int(v)
if err != nil {
return err
}
s.SuggestedAltitudes = append(s.SuggestedAltitudes, elem)
return nil
}); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"suggested_altitudes\"")
}
case "bbox":
requiredBitSet[0] |= 1 << 5
if err := func() error {
if err := s.Bbox.Decode(d); err != nil {
return err
}
return nil
}(); err != nil {
return errors.Wrap(err, "decode field \"bbox\"")
}
default:
return d.Skip()
}
return nil
}); err != nil {
return errors.Wrap(err, "decode WindMeta")
}
// Validate required fields.
var failures []validate.FieldError
for i, mask := range [1]uint8{
0b00111111,
} {
if result := (requiredBitSet[i] & mask) ^ mask; result != 0 {
// Mask only required fields and check equality to mask using XOR.
//
// If XOR result is not zero, result is not equal to expected, so some fields are missed.
// Bits of fields which would be set are actually bits of missed fields.
missed := bits.OnesCount8(result)
for bitN := 0; bitN < missed; bitN++ {
bitIdx := bits.TrailingZeros8(result)
fieldIdx := i*8 + bitIdx
var name string
if fieldIdx < len(jsonFieldsNameOfWindMeta) {
name = jsonFieldsNameOfWindMeta[fieldIdx]
} else {
name = strconv.Itoa(fieldIdx)
}
failures = append(failures, validate.FieldError{
Name: name,
Error: validate.ErrFieldRequired,
})
// Reset bit.
result &^= 1 << bitIdx
}
}
}
if len(failures) > 0 {
return &validate.Error{Fields: failures}
}
return nil
}
// MarshalJSON implements stdjson.Marshaler.
func (s *WindMeta) MarshalJSON() ([]byte, error) {
e := jx.Encoder{}
s.Encode(&e)
return e.Bytes(), nil
}
// UnmarshalJSON implements stdjson.Unmarshaler.
func (s *WindMeta) UnmarshalJSON(data []byte) error {
d := jx.DecodeBytes(data)
return s.Decode(d)
}