mirror of
https://github.com/tailscale/tailscale.git
synced 2025-12-25 01:56:37 +00:00
all: implement AppendText alongside MarshalText (#9207)
This eventually allows encoding packages that may respect the proposed encoding.TextAppender interface. The performance gains from this is between 10-30%. Updates tailscale/corp#14379 Signed-off-by: Joe Tsai <joetsai@digital-static.net>
This commit is contained in:
@@ -7,7 +7,6 @@ package tailcfg
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"encoding/hex"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
@@ -445,6 +444,10 @@ const (
|
||||
MachineInvalid // server has explicitly rejected this machine key
|
||||
)
|
||||
|
||||
func (m MachineStatus) AppendText(b []byte) ([]byte, error) {
|
||||
return append(b, m.String()...), nil
|
||||
}
|
||||
|
||||
func (m MachineStatus) MarshalText() ([]byte, error) {
|
||||
return []byte(m.String()), nil
|
||||
}
|
||||
@@ -921,6 +924,10 @@ const (
|
||||
SignatureV2
|
||||
)
|
||||
|
||||
func (st SignatureType) AppendText(b []byte) ([]byte, error) {
|
||||
return append(b, st.String()...), nil
|
||||
}
|
||||
|
||||
func (st SignatureType) MarshalText() ([]byte, error) {
|
||||
return []byte(st.String()), nil
|
||||
}
|
||||
@@ -1765,18 +1772,6 @@ type Debug struct {
|
||||
Exit *int `json:",omitempty"`
|
||||
}
|
||||
|
||||
func appendKey(base []byte, prefix string, k [32]byte) []byte {
|
||||
ret := append(base, make([]byte, len(prefix)+64)...)
|
||||
buf := ret[len(base):]
|
||||
copy(buf, prefix)
|
||||
hex.Encode(buf[len(prefix):], k[:])
|
||||
return ret
|
||||
}
|
||||
|
||||
func keyMarshalText(prefix string, k [32]byte) []byte {
|
||||
return appendKey(nil, prefix, k)
|
||||
}
|
||||
|
||||
func (id ID) String() string { return fmt.Sprintf("id:%x", int64(id)) }
|
||||
func (id UserID) String() string { return fmt.Sprintf("userid:%x", int64(id)) }
|
||||
func (id LoginID) String() string { return fmt.Sprintf("loginid:%x", int64(id)) }
|
||||
|
||||
Reference in New Issue
Block a user