diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/extra/bunjson')
| -rw-r--r-- | vendor/github.com/uptrace/bun/extra/bunjson/json.go | 26 | ||||
| -rw-r--r-- | vendor/github.com/uptrace/bun/extra/bunjson/provider.go | 43 |
2 files changed, 69 insertions, 0 deletions
diff --git a/vendor/github.com/uptrace/bun/extra/bunjson/json.go b/vendor/github.com/uptrace/bun/extra/bunjson/json.go new file mode 100644 index 000000000..eff9d3f0e --- /dev/null +++ b/vendor/github.com/uptrace/bun/extra/bunjson/json.go @@ -0,0 +1,26 @@ +package bunjson + +import ( + "encoding/json" + "io" +) + +var _ Provider = (*StdProvider)(nil) + +type StdProvider struct{} + +func (StdProvider) Marshal(v interface{}) ([]byte, error) { + return json.Marshal(v) +} + +func (StdProvider) Unmarshal(data []byte, v interface{}) error { + return json.Unmarshal(data, v) +} + +func (StdProvider) NewEncoder(w io.Writer) Encoder { + return json.NewEncoder(w) +} + +func (StdProvider) NewDecoder(r io.Reader) Decoder { + return json.NewDecoder(r) +} diff --git a/vendor/github.com/uptrace/bun/extra/bunjson/provider.go b/vendor/github.com/uptrace/bun/extra/bunjson/provider.go new file mode 100644 index 000000000..7f810e122 --- /dev/null +++ b/vendor/github.com/uptrace/bun/extra/bunjson/provider.go @@ -0,0 +1,43 @@ +package bunjson + +import ( + "io" +) + +var provider Provider = StdProvider{} + +func SetProvider(p Provider) { + provider = p +} + +type Provider interface { + Marshal(v interface{}) ([]byte, error) + Unmarshal(data []byte, v interface{}) error + NewEncoder(w io.Writer) Encoder + NewDecoder(r io.Reader) Decoder +} + +type Decoder interface { + Decode(v interface{}) error + UseNumber() +} + +type Encoder interface { + Encode(v interface{}) error +} + +func Marshal(v interface{}) ([]byte, error) { + return provider.Marshal(v) +} + +func Unmarshal(data []byte, v interface{}) error { + return provider.Unmarshal(data, v) +} + +func NewEncoder(w io.Writer) Encoder { + return provider.NewEncoder(w) +} + +func NewDecoder(r io.Reader) Decoder { + return provider.NewDecoder(r) +} |
