package ogen_types import ( "errors" "github.com/go-faster/jx" ) type Decimal struct { Value int64 Exponent int } var ErrUnknownField = errors.New("unknown field") func (o *Decimal) Encode(e *jx.Encoder) { e.ObjStart() e.FieldStart("value") e.Int64(o.Value) e.FieldStart("exponent") e.Int(o.Exponent) e.ObjEnd() } func (o *Decimal) Decode(d *jx.Decoder) error { err := d.Obj(func(d *jx.Decoder, key string) (err error) { if key == "exponent" { if o.Exponent, err = d.Int(); err != nil { return err } } else if key == "value" { if o.Value, err = d.Int64(); err != nil { return err } } else { err = ErrUnknownField } return err }) return err } func (d *Decimal) MarshalJSON() ([]byte, error) { return []byte{0x00, 0x01, 0x02}, nil } func (d *Decimal) UnmarshalJSON(data []byte) error { return nil }