- package types
-
- import (
- "bytes"
- "encoding/json"
-
- "github.com/golang/protobuf/jsonpb"
- )
-
- //---------------------------------------------------------------------------
- // override JSON marshalling so we dont emit defaults (ie. disable omitempty)
- // note we need Unmarshal functions too because protobuf had the bright idea
- // to marshal int64->string. cool. cool, cool, cool: https://developers.google.com/protocol-buffers/docs/proto3#json
-
- var (
- jsonpbMarshaller = jsonpb.Marshaler{
- EnumsAsInts: true,
- EmitDefaults: false,
- }
- jsonpbUnmarshaller = jsonpb.Unmarshaler{}
- )
-
- func (r *ResponseSetOption) MarshalJSON() ([]byte, error) {
- s, err := jsonpbMarshaller.MarshalToString(r)
- return []byte(s), err
- }
-
- func (r *ResponseSetOption) UnmarshalJSON(b []byte) error {
- reader := bytes.NewBuffer(b)
- return jsonpbUnmarshaller.Unmarshal(reader, r)
- }
-
- func (r *ResponseCheckTx) MarshalJSON() ([]byte, error) {
- s, err := jsonpbMarshaller.MarshalToString(r)
- return []byte(s), err
- }
-
- func (r *ResponseCheckTx) UnmarshalJSON(b []byte) error {
- reader := bytes.NewBuffer(b)
- return jsonpbUnmarshaller.Unmarshal(reader, r)
- }
-
- func (r *ResponseDeliverTx) MarshalJSON() ([]byte, error) {
- s, err := jsonpbMarshaller.MarshalToString(r)
- return []byte(s), err
- }
-
- func (r *ResponseDeliverTx) UnmarshalJSON(b []byte) error {
- reader := bytes.NewBuffer(b)
- return jsonpbUnmarshaller.Unmarshal(reader, r)
- }
-
- func (r *ResponseQuery) MarshalJSON() ([]byte, error) {
- s, err := jsonpbMarshaller.MarshalToString(r)
- return []byte(s), err
- }
-
- func (r *ResponseQuery) UnmarshalJSON(b []byte) error {
- reader := bytes.NewBuffer(b)
- return jsonpbUnmarshaller.Unmarshal(reader, r)
- }
-
- func (r *ResponseCommit) MarshalJSON() ([]byte, error) {
- s, err := jsonpbMarshaller.MarshalToString(r)
- return []byte(s), err
- }
-
- func (r *ResponseCommit) UnmarshalJSON(b []byte) error {
- reader := bytes.NewBuffer(b)
- return jsonpbUnmarshaller.Unmarshal(reader, r)
- }
-
- // Some compile time assertions to ensure we don't
- // have accidental runtime surprises later on.
-
- // jsonEncodingRoundTripper ensures that asserted
- // interfaces implement both MarshalJSON and UnmarshalJSON
- type jsonRoundTripper interface {
- json.Marshaler
- json.Unmarshaler
- }
-
- var _ jsonRoundTripper = (*ResponseCommit)(nil)
- var _ jsonRoundTripper = (*ResponseQuery)(nil)
- var _ jsonRoundTripper = (*ResponseDeliverTx)(nil)
- var _ jsonRoundTripper = (*ResponseCheckTx)(nil)
- var _ jsonRoundTripper = (*ResponseSetOption)(nil)
|