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)