Remove BPA from Makefile
[icn.git] / cmd / bpa-operator / vendor / github.com / grpc-ecosystem / grpc-gateway / runtime / marshal_json.go
1 package runtime
2
3 import (
4         "encoding/json"
5         "io"
6 )
7
8 // JSONBuiltin is a Marshaler which marshals/unmarshals into/from JSON
9 // with the standard "encoding/json" package of Golang.
10 // Although it is generally faster for simple proto messages than JSONPb,
11 // it does not support advanced features of protobuf, e.g. map, oneof, ....
12 //
13 // The NewEncoder and NewDecoder types return *json.Encoder and
14 // *json.Decoder respectively.
15 type JSONBuiltin struct{}
16
17 // ContentType always Returns "application/json".
18 func (*JSONBuiltin) ContentType() string {
19         return "application/json"
20 }
21
22 // Marshal marshals "v" into JSON
23 func (j *JSONBuiltin) Marshal(v interface{}) ([]byte, error) {
24         return json.Marshal(v)
25 }
26
27 // Unmarshal unmarshals JSON data into "v".
28 func (j *JSONBuiltin) Unmarshal(data []byte, v interface{}) error {
29         return json.Unmarshal(data, v)
30 }
31
32 // NewDecoder returns a Decoder which reads JSON stream from "r".
33 func (j *JSONBuiltin) NewDecoder(r io.Reader) Decoder {
34         return json.NewDecoder(r)
35 }
36
37 // NewEncoder returns an Encoder which writes JSON stream into "w".
38 func (j *JSONBuiltin) NewEncoder(w io.Writer) Encoder {
39         return json.NewEncoder(w)
40 }
41
42 // Delimiter for newline encoded JSON streams.
43 func (j *JSONBuiltin) Delimiter() []byte {
44         return []byte("\n")
45 }