package maphash
import (
)
const purego = false
func () uint64
func ( unsafe.Pointer, , uintptr) uintptr
func ( []byte, uint64) uint64 {
if len() == 0 {
return
}
:= len()
if goarch.PtrSize == 8 {
return uint64(runtime_memhash(unsafe.Pointer(&[0]), uintptr(), uintptr()))
}
:= runtime_memhash(unsafe.Pointer(&[0]), uintptr(), uintptr())
:= runtime_memhash(unsafe.Pointer(&[0]), uintptr(>>32), uintptr())
return uint64()<<32 | uint64()
}
func ( string, uint64) uint64 {
:= unsafe.Slice(unsafe.StringData(), len())
return rthash(, )
}
func () uint64 {
return runtime_rand()
}
func [ comparable]( , Seed) uint64 {
:= .s
var map[]struct{}
:= abi.TypeOf()
var func(unsafe.Pointer, uintptr) uintptr
if goexperiment.SwissMap {
= (*abi.SwissMapType)(unsafe.Pointer()).Hasher
} else {
= (*abi.OldMapType)(unsafe.Pointer()).Hasher
}
if goarch.PtrSize == 8 {
return uint64((abi.NoEscape(unsafe.Pointer(&)), uintptr()))
}
:= (abi.NoEscape(unsafe.Pointer(&)), uintptr())
:= (abi.NoEscape(unsafe.Pointer(&)), uintptr(>>32))
return uint64()<<32 | uint64()
}
func [ comparable]( *Hash, ) {
.state.s = comparableHash(, .state)
}