github.com/sandwich-go/boost@v1.3.29/xhash/hash14v/hash14v.go (about) 1 package hash14v 2 3 import "github.com/sandwich-go/boost/z" 4 5 // V uint64 转换后的字节数组 6 type V []byte 7 8 func (v V) String() string { return z.BytesToString(v) } 9 10 // Id 字节数组转换后 uint64 11 type Id = uint64 12 13 // Converter Id 转换器,Id 和 V 可以相互转换 14 type Converter interface { 15 // Offset 获取 Id 的 offset 16 Offset() Id 17 // ToId 对 V 进行转换,转换为 Id 18 ToId(V) Id 19 // ToV 对 Id 进行转换,转换为 V 20 ToV(Id) V 21 } 22 23 // global is global hash14v converter, must goroutine safe, do not change inner properties while running 24 var global Converter 25 26 func init() { 27 global = New() 28 } 29 30 // ToV 对 Id 进行转换,转换为 V 31 func ToV(id Id) V { return global.ToV(id) } 32 33 // ToId 对 V 进行转换,转换为 Id 34 func ToId(v V) Id { return global.ToId(v) } 35 36 // Offset 获取 Id 的 offset 37 func Offset() Id { return global.Offset() }