// Code generated by ogen, DO NOT EDIT. package api import ( "math/bits" "strconv" "github.com/go-faster/errors" "github.com/go-faster/jx" "github.com/ogen-go/ogen/validate" ) // 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("code") e.Int64(s.Code) } { e.FieldStart("message") e.Str(s.Message) } } var jsonFieldsNameOfError = [2]string{ 0: "code", 1: "message", } // 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 "code": requiredBitSet[0] |= 1 << 0 if err := func() error { v, err := d.Int64() s.Code = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"code\"") } case "message": requiredBitSet[0] |= 1 << 1 if err := func() error { v, err := d.Str() s.Message = string(v) if 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 Error") } // 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(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 *ID) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. func (s *ID) encodeFields(e *jx.Encoder) { { e.FieldStart("ID") e.Int64(s.ID) } } var jsonFieldsNameOfID = [1]string{ 0: "ID", } // Decode decodes ID from json. func (s *ID) Decode(d *jx.Decoder) error { if s == nil { return errors.New("invalid: unable to decode ID 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.Int64() s.ID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"ID\"") } default: return d.Skip() } return nil }); err != nil { return errors.Wrap(err, "decode ID") } // 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(jsonFieldsNameOfID) { name = jsonFieldsNameOfID[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 *ID) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. func (s *ID) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode encodes int64 as json. func (o OptInt64) Encode(e *jx.Encoder) { if !o.Set { return } e.Int64(int64(o.Value)) } // Decode decodes int64 from json. func (o *OptInt64) Decode(d *jx.Decoder) error { if o == nil { return errors.New("invalid: unable to decode OptInt64 to nil") } o.Set = true v, err := d.Int64() if err != nil { return err } o.Value = int64(v) return nil } // MarshalJSON implements stdjson.Marshaler. func (s OptInt64) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. func (s *OptInt64) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode implements json.Marshaler. func (s *Script) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. func (s *Script) encodeFields(e *jx.Encoder) { { e.FieldStart("ID") e.Int64(s.ID) } { e.FieldStart("Name") e.Str(s.Name) } { e.FieldStart("Hash") e.Str(s.Hash) } { e.FieldStart("Source") e.Str(s.Source) } { e.FieldStart("SubmissionID") e.Int64(s.SubmissionID) } } var jsonFieldsNameOfScript = [5]string{ 0: "ID", 1: "Name", 2: "Hash", 3: "Source", 4: "SubmissionID", } // Decode decodes Script from json. func (s *Script) Decode(d *jx.Decoder) error { if s == nil { return errors.New("invalid: unable to decode Script 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.Int64() s.ID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"ID\"") } case "Name": requiredBitSet[0] |= 1 << 1 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 "Hash": requiredBitSet[0] |= 1 << 2 if err := func() error { v, err := d.Str() s.Hash = string(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"Hash\"") } case "Source": requiredBitSet[0] |= 1 << 3 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 "SubmissionID": requiredBitSet[0] |= 1 << 4 if err := func() error { v, err := d.Int64() s.SubmissionID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"SubmissionID\"") } default: return d.Skip() } return nil }); err != nil { return errors.Wrap(err, "decode Script") } // Validate required fields. var failures []validate.FieldError for i, mask := range [1]uint8{ 0b00011111, } { 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(jsonFieldsNameOfScript) { name = jsonFieldsNameOfScript[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 *Script) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. func (s *Script) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode implements json.Marshaler. func (s *ScriptCreate) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. func (s *ScriptCreate) encodeFields(e *jx.Encoder) { { e.FieldStart("Name") e.Str(s.Name) } { e.FieldStart("Source") e.Str(s.Source) } { if s.SubmissionID.Set { e.FieldStart("SubmissionID") s.SubmissionID.Encode(e) } } } var jsonFieldsNameOfScriptCreate = [3]string{ 0: "Name", 1: "Source", 2: "SubmissionID", } // Decode decodes ScriptCreate from json. func (s *ScriptCreate) Decode(d *jx.Decoder) error { if s == nil { return errors.New("invalid: unable to decode ScriptCreate 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 "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 "SubmissionID": if err := func() error { s.SubmissionID.Reset() if err := s.SubmissionID.Decode(d); err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"SubmissionID\"") } default: return d.Skip() } return nil }); err != nil { return errors.Wrap(err, "decode ScriptCreate") } // 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(jsonFieldsNameOfScriptCreate) { name = jsonFieldsNameOfScriptCreate[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 *ScriptCreate) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. func (s *ScriptCreate) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode implements json.Marshaler. func (s *ScriptPolicy) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. func (s *ScriptPolicy) encodeFields(e *jx.Encoder) { { e.FieldStart("ID") e.Int64(s.ID) } { e.FieldStart("FromScriptHash") e.Str(s.FromScriptHash) } { e.FieldStart("ToScriptID") e.Int64(s.ToScriptID) } { e.FieldStart("Policy") e.Int32(s.Policy) } } var jsonFieldsNameOfScriptPolicy = [4]string{ 0: "ID", 1: "FromScriptHash", 2: "ToScriptID", 3: "Policy", } // Decode decodes ScriptPolicy from json. func (s *ScriptPolicy) Decode(d *jx.Decoder) error { if s == nil { return errors.New("invalid: unable to decode ScriptPolicy 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.Int64() s.ID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"ID\"") } case "FromScriptHash": requiredBitSet[0] |= 1 << 1 if err := func() error { v, err := d.Str() s.FromScriptHash = string(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"FromScriptHash\"") } case "ToScriptID": requiredBitSet[0] |= 1 << 2 if err := func() error { v, err := d.Int64() s.ToScriptID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"ToScriptID\"") } case "Policy": requiredBitSet[0] |= 1 << 3 if err := func() error { v, err := d.Int32() s.Policy = int32(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"Policy\"") } default: return d.Skip() } return nil }); err != nil { return errors.Wrap(err, "decode ScriptPolicy") } // 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(jsonFieldsNameOfScriptPolicy) { name = jsonFieldsNameOfScriptPolicy[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 *ScriptPolicy) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. func (s *ScriptPolicy) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) } // Encode implements json.Marshaler. func (s *ScriptPolicyCreate) Encode(e *jx.Encoder) { e.ObjStart() s.encodeFields(e) e.ObjEnd() } // encodeFields encodes fields. func (s *ScriptPolicyCreate) encodeFields(e *jx.Encoder) { { e.FieldStart("FromScriptID") e.Int64(s.FromScriptID) } { e.FieldStart("ToScriptID") e.Int64(s.ToScriptID) } { e.FieldStart("Policy") e.Int32(s.Policy) } } var jsonFieldsNameOfScriptPolicyCreate = [3]string{ 0: "FromScriptID", 1: "ToScriptID", 2: "Policy", } // Decode decodes ScriptPolicyCreate from json. func (s *ScriptPolicyCreate) Decode(d *jx.Decoder) error { if s == nil { return errors.New("invalid: unable to decode ScriptPolicyCreate to nil") } var requiredBitSet [1]uint8 if err := d.ObjBytes(func(d *jx.Decoder, k []byte) error { switch string(k) { case "FromScriptID": requiredBitSet[0] |= 1 << 0 if err := func() error { v, err := d.Int64() s.FromScriptID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"FromScriptID\"") } case "ToScriptID": requiredBitSet[0] |= 1 << 1 if err := func() error { v, err := d.Int64() s.ToScriptID = int64(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"ToScriptID\"") } case "Policy": requiredBitSet[0] |= 1 << 2 if err := func() error { v, err := d.Int32() s.Policy = int32(v) if err != nil { return err } return nil }(); err != nil { return errors.Wrap(err, "decode field \"Policy\"") } default: return d.Skip() } return nil }); err != nil { return errors.Wrap(err, "decode ScriptPolicyCreate") } // 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(jsonFieldsNameOfScriptPolicyCreate) { name = jsonFieldsNameOfScriptPolicyCreate[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 *ScriptPolicyCreate) MarshalJSON() ([]byte, error) { e := jx.Encoder{} s.Encode(&e) return e.Bytes(), nil } // UnmarshalJSON implements stdjson.Unmarshaler. func (s *ScriptPolicyCreate) UnmarshalJSON(data []byte) error { d := jx.DecodeBytes(data) return s.Decode(d) }