gen_criteria_json.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Code generated by github.com/fjl/gencodec. DO NOT EDIT.
  2. package whisperv6
  3. import (
  4. "encoding/json"
  5. "github.com/ethereum/go-ethereum/common/hexutil"
  6. )
  7. var _ = (*criteriaOverride)(nil)
  8. // MarshalJSON marshals type Criteria to a json string
  9. func (c Criteria) MarshalJSON() ([]byte, error) {
  10. type Criteria struct {
  11. SymKeyID string `json:"symKeyID"`
  12. PrivateKeyID string `json:"privateKeyID"`
  13. Sig hexutil.Bytes `json:"sig"`
  14. MinPow float64 `json:"minPow"`
  15. Topics []TopicType `json:"topics"`
  16. AllowP2P bool `json:"allowP2P"`
  17. }
  18. var enc Criteria
  19. enc.SymKeyID = c.SymKeyID
  20. enc.PrivateKeyID = c.PrivateKeyID
  21. enc.Sig = c.Sig
  22. enc.MinPow = c.MinPow
  23. enc.Topics = c.Topics
  24. enc.AllowP2P = c.AllowP2P
  25. return json.Marshal(&enc)
  26. }
  27. // UnmarshalJSON unmarshals type Criteria to a json string
  28. func (c *Criteria) UnmarshalJSON(input []byte) error {
  29. type Criteria struct {
  30. SymKeyID *string `json:"symKeyID"`
  31. PrivateKeyID *string `json:"privateKeyID"`
  32. Sig *hexutil.Bytes `json:"sig"`
  33. MinPow *float64 `json:"minPow"`
  34. Topics []TopicType `json:"topics"`
  35. AllowP2P *bool `json:"allowP2P"`
  36. }
  37. var dec Criteria
  38. if err := json.Unmarshal(input, &dec); err != nil {
  39. return err
  40. }
  41. if dec.SymKeyID != nil {
  42. c.SymKeyID = *dec.SymKeyID
  43. }
  44. if dec.PrivateKeyID != nil {
  45. c.PrivateKeyID = *dec.PrivateKeyID
  46. }
  47. if dec.Sig != nil {
  48. c.Sig = *dec.Sig
  49. }
  50. if dec.MinPow != nil {
  51. c.MinPow = *dec.MinPow
  52. }
  53. if dec.Topics != nil {
  54. c.Topics = dec.Topics
  55. }
  56. if dec.AllowP2P != nil {
  57. c.AllowP2P = *dec.AllowP2P
  58. }
  59. return nil
  60. }