internal/deephash: remove remaining type special cases

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
pull/1982/head
Josh Bleecher Snyder 2021-05-24 15:13:18 -07:00 committed by Josh Bleecher Snyder
parent 4b51fbf48c
commit c065cc6169
1 changed files with 1 additions and 39 deletions

View File

@ -15,9 +15,6 @@ import (
"reflect" "reflect"
"strconv" "strconv"
"sync" "sync"
"tailscale.com/tailcfg"
"tailscale.com/types/wgkey"
) )
func calcHash(v interface{}) string { func calcHash(v interface{}) string {
@ -45,12 +42,7 @@ func printTo(w *bufio.Writer, v interface{}, scratch []byte) {
print(w, reflect.ValueOf(v), make(map[uintptr]bool), scratch) print(w, reflect.ValueOf(v), make(map[uintptr]bool), scratch)
} }
var ( var appenderToType = reflect.TypeOf((*appenderTo)(nil)).Elem()
wgkeyKeyType = reflect.TypeOf(wgkey.Key{})
wgkeyPrivateType = reflect.TypeOf(wgkey.Private{})
tailcfgDiscoKeyType = reflect.TypeOf(tailcfg.DiscoKey{})
appenderToType = reflect.TypeOf((*appenderTo)(nil)).Elem()
)
type appenderTo interface { type appenderTo interface {
AppendTo([]byte) []byte AppendTo([]byte) []byte
@ -71,36 +63,6 @@ func print(w *bufio.Writer, v reflect.Value, visited map[uintptr]bool, scratch [
w.Write(scratch) w.Write(scratch)
return true return true
} }
// Special case some common types.
switch v.Type() {
case wgkeyKeyType:
if v.CanAddr() {
x := v.Addr().Interface().(*wgkey.Key)
w.Write(x[:])
} else {
x := v.Interface().(wgkey.Key)
w.Write(x[:])
}
return true
case wgkeyPrivateType:
if v.CanAddr() {
x := v.Addr().Interface().(*wgkey.Private)
w.Write(x[:])
} else {
x := v.Interface().(wgkey.Private)
w.Write(x[:])
}
return true
case tailcfgDiscoKeyType:
if v.CanAddr() {
x := v.Addr().Interface().(*tailcfg.DiscoKey)
w.Write(x[:])
} else {
x := v.Interface().(tailcfg.DiscoKey)
w.Write(x[:])
}
return true
}
} }
// Generic handling. // Generic handling.