func fnv32a(s string) uint32 {
	const (
		initial = 2166136261
		prime   = 16777619
	)

	hash := uint32(initial)
	for i := 0; i < len(s); i++ {
		hash ^= uint32(s[i])
		hash *= prime
	}
	return hash
}
func fnv32a(s string) uint32 {
	const (
		initial = 2166136261
		prime   = 16777619
	)

	hash := uint32(initial)
	for i := 0; i < len(s); i++ {
		hash ^= uint32(s[i])
		hash *= prime
	}
	return hash
}
func fnv32a ( s string ) uint32 { const ( initial = 2166136261 prime = 16777619 ) hash := uint32 ( initial ) for i := 0 ; i < len ( s ) ; i ++ { hash ^= uint32 ( s [ i ] ) hash *= prime } return hash }
// This is based on the standard library's fnv32a implementation.
// We copy it for a couple of reasons:
// 1. Avoid allocations to create a hash.Hash32
// 2. Avoid converting the []byte to a string (another allocation) since
//    the Hash32 interface only supports writing bytes.
This is based on the standard library s fnv32a implementation . We copy it for a couple of reasons : 1 . Avoid allocations to create a hash . Hash32 2 . Avoid converting the [] byte to a string ( another allocation ) since the Hash32 interface only supports writing bytes .