github.com/devwanda/aphelion-staking@v0.33.9/types/proto3/result.go (about)

     1  package proto3
     2  
     3  import (
     4  	"bytes"
     5  	"encoding/json"
     6  
     7  	"github.com/gogo/protobuf/jsonpb"
     8  )
     9  
    10  //---------------------------------------------------------------------------
    11  // override JSON marshalling so we emit defaults (ie. disable omitempty)
    12  
    13  var (
    14  	jsonpbMarshaller = jsonpb.Marshaler{
    15  		EnumsAsInts:  true,
    16  		EmitDefaults: true,
    17  	}
    18  	jsonpbUnmarshaller = jsonpb.Unmarshaler{}
    19  )
    20  
    21  func (r *PartSetHeader) MarshalJSON() ([]byte, error) {
    22  	s, err := jsonpbMarshaller.MarshalToString(r)
    23  	return []byte(s), err
    24  }
    25  
    26  func (r *PartSetHeader) UnmarshalJSON(b []byte) error {
    27  	reader := bytes.NewBuffer(b)
    28  	return jsonpbUnmarshaller.Unmarshal(reader, r)
    29  }
    30  
    31  func (r *Header) MarshalJSON() ([]byte, error) {
    32  	s, err := jsonpbMarshaller.MarshalToString(r)
    33  	return []byte(s), err
    34  }
    35  
    36  func (r *Header) UnmarshalJSON(b []byte) error {
    37  	reader := bytes.NewBuffer(b)
    38  	return jsonpbUnmarshaller.Unmarshal(reader, r)
    39  }
    40  
    41  func (r *Version) MarshalJSON() ([]byte, error) {
    42  	s, err := jsonpbMarshaller.MarshalToString(r)
    43  	return []byte(s), err
    44  }
    45  
    46  func (r *Version) UnmarshalJSON(b []byte) error {
    47  	reader := bytes.NewBuffer(b)
    48  	return jsonpbUnmarshaller.Unmarshal(reader, r)
    49  }
    50  
    51  func (r *Timestamp) MarshalJSON() ([]byte, error) {
    52  	s, err := jsonpbMarshaller.MarshalToString(r)
    53  	return []byte(s), err
    54  }
    55  
    56  func (r *Timestamp) UnmarshalJSON(b []byte) error {
    57  	reader := bytes.NewBuffer(b)
    58  	return jsonpbUnmarshaller.Unmarshal(reader, r)
    59  }
    60  
    61  // Some compile time assertions to ensure we don't
    62  // have accidental runtime surprises later on.
    63  // jsonEncodingRoundTripper ensures that asserted
    64  // interfaces implement both MarshalJSON and UnmarshalJSON
    65  
    66  type jsonRoundTripper interface {
    67  	json.Marshaler
    68  	json.Unmarshaler
    69  }
    70  
    71  var _ jsonRoundTripper = (*PartSetHeader)(nil)
    72  var _ jsonRoundTripper = (*Header)(nil)
    73  var _ jsonRoundTripper = (*Version)(nil)
    74  var _ jsonRoundTripper = (*Timestamp)(nil)