Last change
on this file since 824 was 822, checked in by yakumo.izuru, 22 months ago |
Prefer immortal.run over runit and rc.d, use vendored modules
for convenience.
Signed-off-by: Izuru Yakumo <yakumo.izuru@…>
|
File size:
1.2 KB
|
Line | |
---|
1 | // Copyright 2015 The Prometheus Authors
|
---|
2 | // Licensed under the Apache License, Version 2.0 (the "License");
|
---|
3 | // you may not use this file except in compliance with the License.
|
---|
4 | // You may obtain a copy of the License at
|
---|
5 | //
|
---|
6 | // http://www.apache.org/licenses/LICENSE-2.0
|
---|
7 | //
|
---|
8 | // Unless required by applicable law or agreed to in writing, software
|
---|
9 | // distributed under the License is distributed on an "AS IS" BASIS,
|
---|
10 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
11 | // See the License for the specific language governing permissions and
|
---|
12 | // limitations under the License.
|
---|
13 |
|
---|
14 | package model
|
---|
15 |
|
---|
16 | // Inline and byte-free variant of hash/fnv's fnv64a.
|
---|
17 |
|
---|
18 | const (
|
---|
19 | offset64 = 14695981039346656037
|
---|
20 | prime64 = 1099511628211
|
---|
21 | )
|
---|
22 |
|
---|
23 | // hashNew initializes a new fnv64a hash value.
|
---|
24 | func hashNew() uint64 {
|
---|
25 | return offset64
|
---|
26 | }
|
---|
27 |
|
---|
28 | // hashAdd adds a string to a fnv64a hash value, returning the updated hash.
|
---|
29 | func hashAdd(h uint64, s string) uint64 {
|
---|
30 | for i := 0; i < len(s); i++ {
|
---|
31 | h ^= uint64(s[i])
|
---|
32 | h *= prime64
|
---|
33 | }
|
---|
34 | return h
|
---|
35 | }
|
---|
36 |
|
---|
37 | // hashAddByte adds a byte to a fnv64a hash value, returning the updated hash.
|
---|
38 | func hashAddByte(h uint64, b byte) uint64 {
|
---|
39 | h ^= uint64(b)
|
---|
40 | h *= prime64
|
---|
41 | return h
|
---|
42 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.