mirror of
https://github.com/opentffoundation/opentf.git
synced 2026-03-13 01:00:50 -04:00
Nomad was manually updated, so revert that to the version in master, remove it from vendor.json and add it to the ignore list. Update all packages that were in an unknown state to their latest master commits.
33 lines
820 B
Go
33 lines
820 B
Go
package models // import "github.com/influxdata/influxdb/models"
|
|
|
|
// from stdlib hash/fnv/fnv.go
|
|
const (
|
|
prime64 = 1099511628211
|
|
offset64 = 14695981039346656037
|
|
)
|
|
|
|
// InlineFNV64a is an alloc-free port of the standard library's fnv64a.
|
|
// See https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function.
|
|
type InlineFNV64a uint64
|
|
|
|
// NewInlineFNV64a returns a new instance of InlineFNV64a.
|
|
func NewInlineFNV64a() InlineFNV64a {
|
|
return offset64
|
|
}
|
|
|
|
// Write adds data to the running hash.
|
|
func (s *InlineFNV64a) Write(data []byte) (int, error) {
|
|
hash := uint64(*s)
|
|
for _, c := range data {
|
|
hash ^= uint64(c)
|
|
hash *= prime64
|
|
}
|
|
*s = InlineFNV64a(hash)
|
|
return len(data), nil
|
|
}
|
|
|
|
// Sum64 returns the uint64 of the current resulting hash.
|
|
func (s *InlineFNV64a) Sum64() uint64 {
|
|
return uint64(*s)
|
|
}
|