mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 17:48:29 +08:00
22 lines
400 B
Go
22 lines
400 B
Go
package proxy
|
|
|
|
import (
|
|
"encoding/binary"
|
|
"github.com/spaolacci/murmur3"
|
|
"unsafe"
|
|
)
|
|
|
|
func Hash32_Bytes(b []byte) (uint32, error) {
|
|
h := murmur3.New32()
|
|
if _, err := h.Write(b); err != nil {
|
|
return 0, err
|
|
}
|
|
return h.Sum32() & 0x7fffffff, nil
|
|
}
|
|
|
|
func Hash32_Uint64(v uint64) (uint32, error) {
|
|
b := make([]byte, unsafe.Sizeof(v))
|
|
binary.LittleEndian.PutUint64(b, v)
|
|
return Hash32_Bytes(b)
|
|
}
|