NewEncoder returns an Encoder which writes JSON stream into "w".
(w io.Writer)
| 191 | |
| 192 | // NewEncoder returns an Encoder which writes JSON stream into "w". |
| 193 | func (j *JSONPb) NewEncoder(w io.Writer) Encoder { |
| 194 | return EncoderFunc(func(v interface{}) error { |
| 195 | if err := j.marshalTo(w, v); err != nil { |
| 196 | return err |
| 197 | } |
| 198 | // mimic json.Encoder by adding a newline (makes output |
| 199 | // easier to read when it contains multiple encoded items) |
| 200 | _, err := w.Write(j.Delimiter()) |
| 201 | return err |
| 202 | }) |
| 203 | } |
| 204 | |
| 205 | func unmarshalJSONPb(data []byte, unmarshaler protojson.UnmarshalOptions, v interface{}) error { |
| 206 | d := json.NewDecoder(bytes.NewReader(data)) |