summaryrefslogtreecommitdiff
path: root/vendor/github.com/go-pg/pg/v10/pgjson/provider.go
diff options
context:
space:
mode:
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.go43
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)
+}