diff options
Diffstat (limited to 'vendor/github.com/go-pg/pg/v10/pgjson/provider.go')
-rw-r--r-- | vendor/github.com/go-pg/pg/v10/pgjson/provider.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/vendor/github.com/go-pg/pg/v10/pgjson/provider.go b/vendor/github.com/go-pg/pg/v10/pgjson/provider.go new file mode 100644 index 000000000..a4b663ce4 --- /dev/null +++ b/vendor/github.com/go-pg/pg/v10/pgjson/provider.go @@ -0,0 +1,43 @@ +package pgjson + +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) +} |