initial
This commit is contained in:
commit
f693a5ed5f
25
date.go
Normal file
25
date.go
Normal file
@ -0,0 +1,25 @@
|
||||
package ogen_types
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/go-faster/jx"
|
||||
)
|
||||
|
||||
type Date struct {
|
||||
time.Time
|
||||
}
|
||||
|
||||
func (d *Date) Encode(e *jx.Encoder) error {
|
||||
e.Str(d.Format("2006-01-02"))
|
||||
return nil
|
||||
}
|
||||
|
||||
func (d *Date) Decode(de *jx.Decoder) error {
|
||||
value, err := de.Str()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
d.Time, err = time.Parse("2006-01-02", value)
|
||||
return err
|
||||
}
|
||||
42
decimal.go
Normal file
42
decimal.go
Normal file
@ -0,0 +1,42 @@
|
||||
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
|
||||
}
|
||||
11
go.mod
Normal file
11
go.mod
Normal file
@ -0,0 +1,11 @@
|
||||
module git.dreakmore.info/ogen_types
|
||||
|
||||
go 1.24.2
|
||||
|
||||
require github.com/go-faster/jx v1.1.0
|
||||
|
||||
require (
|
||||
github.com/go-faster/errors v0.6.1 // indirect
|
||||
github.com/segmentio/asm v1.2.0 // indirect
|
||||
golang.org/x/sys v0.1.0 // indirect
|
||||
)
|
||||
18
go.sum
Normal file
18
go.sum
Normal file
@ -0,0 +1,18 @@
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/go-faster/errors v0.6.1 h1:nNIPOBkprlKzkThvS/0YaX8Zs9KewLCOSFQS5BU06FI=
|
||||
github.com/go-faster/errors v0.6.1/go.mod h1:5MGV2/2T9yvlrbhe9pD9LO5Z/2zCSq2T8j+Jpi2LAyY=
|
||||
github.com/go-faster/jx v1.1.0 h1:ZsW3wD+snOdmTDy9eIVgQdjUpXRRV4rqW8NS3t+20bg=
|
||||
github.com/go-faster/jx v1.1.0/go.mod h1:vKDNikrKoyUmpzaJ0OkIkRQClNHFX/nF3dnTJZb3skg=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys=
|
||||
github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
|
||||
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
|
||||
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
|
||||
golang.org/x/exp v0.0.0-20230116083435-1de6713980de h1:DBWn//IJw30uYCgERoxCg84hWtA97F4wMiKOIh00Uf0=
|
||||
golang.org/x/exp v0.0.0-20230116083435-1de6713980de/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
|
||||
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
|
||||
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
Loading…
x
Reference in New Issue
Block a user