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
Nick Khyl da9965d51c cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible
In this PR, we add a generic views.ValuePointer type that can be used as a view for pointers
to basic types and struct types that do not require deep cloning and do not have corresponding
view types. Its Get/GetOk methods return stack-allocated shallow copies of the underlying value.

We then update the cmd/viewer codegen to produce getters that return either concrete views
when available or ValuePointer views when not, for pointer fields in generated view types.
This allows us to avoid unnecessary allocations compared to returning pointers to newly
allocated shallow copies.

Updates #14570

Signed-off-by: Nick Khyl <nickk@tailscale.com>
11 months ago
..
appctype appc,ipn/ipnlocal,types/appctype: implement control provided routes 2 years ago
bools types/bools: add IfElse (#14272) 12 months ago
dnstype cli: add `tailscale dns query` (#13368) 1 year 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) 12 months ago
ipproto all: use Go 1.22 range-over-int 2 years ago
key types/key: use tlpub: in error message (#13707) 1 year ago
lazy util/uniq,types/lazy,*: delete code that's now in Go std 11 months ago
logger all: use Go 1.22 range-over-int 2 years ago
logid types/logid: add Add method (#12478) 1 year ago
netlogtype all: update copyright and license headers 3 years ago
netmap all: use iterators in more places instead of Range funcs 11 months ago
nettype wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration 3 years ago
opt types/opt: fix test to be agnostic to omitzero support (#14401) 12 months ago
persist types/persist: remove unused field Persist.Provider 2 years ago
prefs cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible 11 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 cmd/viewer,types/views,various: avoid allocations in pointer field getters whenever possible 11 months ago