Config: Implement missing MarshalJSON for structs having custom UnmarshalJSON (#4585)

* conf: implement MarshalJSON for FakeDNSConfig

* conf: Rewrite MarshalJSON for PortList
decouple PortRange from PortList.

* conf: implement MarshalJSON for HostAddress

* conf: Add MarshalJSON comments and use pointers.
This commit is contained in:
Ragavendaran Puliyadi 2025-04-07 21:16:49 +05:30 committed by GitHub
parent 0dbab7bcd7
commit 2d3126b752
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 63 additions and 11 deletions

View file

@ -20,6 +20,18 @@ type FakeDNSConfig struct {
pools []*FakeDNSPoolElementConfig
}
// MarshalJSON implements encoding/json.Marshaler.MarshalJSON
func (f *FakeDNSConfig) MarshalJSON() ([]byte, error) {
if (f.pool != nil) != (f.pools != nil) {
if f.pool != nil {
return json.Marshal(f.pool)
} else if f.pools != nil {
return json.Marshal(f.pools)
}
}
return nil, errors.New("unexpected config state")
}
// UnmarshalJSON implements encoding/json.Unmarshaler.UnmarshalJSON
func (f *FakeDNSConfig) UnmarshalJSON(data []byte) error {
var pool FakeDNSPoolElementConfig