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() }