summaryrefslogtreecommitdiffhomepage
path: root/types/opt
diff options
context:
space:
mode:
Diffstat (limited to 'types/opt')
-rw-r--r--types/opt/value.go16
-rw-r--r--types/opt/value_test.go5
2 files changed, 13 insertions, 8 deletions
diff --git a/types/opt/value.go b/types/opt/value.go
index b47b03c81..c71c53e51 100644
--- a/types/opt/value.go
+++ b/types/opt/value.go
@@ -100,31 +100,31 @@ func (o Value[T]) Equal(v Value[T]) bool {
return false
}
-// MarshalJSONV2 implements [jsonv2.MarshalerV2].
-func (o Value[T]) MarshalJSONV2(enc *jsontext.Encoder, opts jsonv2.Options) error {
+// MarshalJSONTo implements [jsonv2.MarshalerTo].
+func (o Value[T]) MarshalJSONTo(enc *jsontext.Encoder) error {
if !o.set {
return enc.WriteToken(jsontext.Null)
}
- return jsonv2.MarshalEncode(enc, &o.value, opts)
+ return jsonv2.MarshalEncode(enc, &o.value)
}
-// UnmarshalJSONV2 implements [jsonv2.UnmarshalerV2].
-func (o *Value[T]) UnmarshalJSONV2(dec *jsontext.Decoder, opts jsonv2.Options) error {
+// UnmarshalJSONFrom implements [jsonv2.UnmarshalerFrom].
+func (o *Value[T]) UnmarshalJSONFrom(dec *jsontext.Decoder) error {
if dec.PeekKind() == 'n' {
*o = Value[T]{}
_, err := dec.ReadToken() // read null
return err
}
o.set = true
- return jsonv2.UnmarshalDecode(dec, &o.value, opts)
+ return jsonv2.UnmarshalDecode(dec, &o.value)
}
// MarshalJSON implements [json.Marshaler].
func (o Value[T]) MarshalJSON() ([]byte, error) {
- return jsonv2.Marshal(o) // uses MarshalJSONV2
+ return jsonv2.Marshal(o) // uses MarshalJSONTo
}
// UnmarshalJSON implements [json.Unmarshaler].
func (o *Value[T]) UnmarshalJSON(b []byte) error {
- return jsonv2.Unmarshal(b, o) // uses UnmarshalJSONV2
+ return jsonv2.Unmarshal(b, o) // uses UnmarshalJSONFrom
}
diff --git a/types/opt/value_test.go b/types/opt/value_test.go
index dbd8b255f..890f9a579 100644
--- a/types/opt/value_test.go
+++ b/types/opt/value_test.go
@@ -13,6 +13,11 @@ import (
"tailscale.com/util/must"
)
+var (
+ _ jsonv2.MarshalerTo = (*Value[bool])(nil)
+ _ jsonv2.UnmarshalerFrom = (*Value[bool])(nil)
+)
+
type testStruct struct {
Int int `json:",omitempty,omitzero"`
Str string `json:",omitempty"`