diff options
| author | Paul Scott <paul@tailscale.com> | 2025-02-26 11:07:30 +0000 |
|---|---|---|
| committer | Paul Scott <paul@tailscale.com> | 2025-02-26 11:11:02 +0000 |
| commit | 36d4b831afa44f4153171218a6930cabcce1c6b1 (patch) | |
| tree | b2fedc37ab7056c6b8eccf4bde9753edecdd9799 /types/opt/value.go | |
| parent | 820bdb870a414d9a5d2131f80649d0fa98a74819 (diff) | |
| download | tailscale-icio/opt-nojsonv2.tar.xz tailscale-icio/opt-nojsonv2.zip | |
types/opt: make jsonv2 dependency optional behind ts_omit_jsonv2 tagicio/opt-nojsonv2
Updates #TODO
Signed-off-by: Paul Scott <paul@tailscale.com>
Diffstat (limited to 'types/opt/value.go')
| -rw-r--r-- | types/opt/value.go | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/types/opt/value.go b/types/opt/value.go index b47b03c81..bd90b5d90 100644 --- a/types/opt/value.go +++ b/types/opt/value.go @@ -6,9 +6,6 @@ package opt import ( "fmt" "reflect" - - jsonv2 "github.com/go-json-experiment/json" - "github.com/go-json-experiment/json/jsontext" ) // Value is an optional value to be JSON-encoded. @@ -99,32 +96,3 @@ 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 { - if !o.set { - return enc.WriteToken(jsontext.Null) - } - return jsonv2.MarshalEncode(enc, &o.value, opts) -} - -// UnmarshalJSONV2 implements [jsonv2.UnmarshalerV2]. -func (o *Value[T]) UnmarshalJSONV2(dec *jsontext.Decoder, opts jsonv2.Options) 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) -} - -// MarshalJSON implements [json.Marshaler]. -func (o Value[T]) MarshalJSON() ([]byte, error) { - return jsonv2.Marshal(o) // uses MarshalJSONV2 -} - -// UnmarshalJSON implements [json.Unmarshaler]. -func (o *Value[T]) UnmarshalJSON(b []byte) error { - return jsonv2.Unmarshal(b, o) // uses UnmarshalJSONV2 -} |
