You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/types
Joe Tsai 1f029180c7
types/jsonx: add package for json/v2 helpers (#15756)
The typical way to implement union types in Go
is to use an interface where the set of types is limited.
However, there historically has been poor support
in v1 "encoding/json" with interface types where
you can marshal such values, but fail to unmarshal them
since type information about the concrete type is lost.

The MakeInterfaceCoders function constructs custom
marshal/unmarshal functions such that the type name
is encoded in the JSON representation.
The set of valid concrete types for an interface
must be statically specified for this to function.

Updates tailscale/corp#22024

Signed-off-by: Joe Tsai <joetsai@digital-static.net>
8 months ago
..
appctype appc,ipn/ipnlocal,types/appctype: implement control provided routes 2 years ago
bools types/bools: fix doc typo (#15021) 10 months ago
dnstype cmd/viewer,all: consistently use "read-only" instead of "readonly" 11 months ago
empty all: update copyright and license headers 3 years ago
flagtype all: update copyright and license headers 3 years ago
iox types/iox: add function types for Reader and Writer (#14366) 1 year ago
ipproto all: use Go 1.22 range-over-int 2 years ago
jsonx types/jsonx: add package for json/v2 helpers (#15756) 8 months ago
key types/key: use tlpub: in error message (#13707) 1 year ago
lazy all: unify some redundant testing.TB interface copies 8 months ago
logger all: unify some redundant testing.TB interface copies 8 months ago
logid types/logid: add Add method (#12478) 1 year ago
netlogtype all: update copyright and license headers 3 years ago
netmap control/controlclient,tailcfg:types: remove MaxKeyduration from NetMap 10 months ago
nettype wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 3 years ago
opt all: statically enforce json/v2 interface satisfaction (#15154) 9 months ago
persist types/persist: remove Persist.LegacyFrontendPrivateMachineKey 10 months ago
prefs all: statically enforce json/v2 interface satisfaction (#15154) 9 months ago
preftype cmd/tailscaled,*: add start of configuration file support 2 years ago
ptr all: update copyright and license headers 3 years ago
result types/result, util/lineiter: add package for a result type, use it 1 year ago
structs all: update copyright and license headers 3 years ago
tkatype types/tkatype: add test for MarshaledSignature's JSON format 2 years ago
views types/views: make SliceEqualAnyOrder also do short slice optimization 10 months ago