// Copyright 2013 The Prometheus Authors// Licensed under the Apache License, Version 2.0 (the "License");// you may not use this file except in compliance with the License.// You may obtain a copy of the License at//// http://www.apache.org/licenses/LICENSE-2.0//// Unless required by applicable law or agreed to in writing, software// distributed under the License is distributed on an "AS IS" BASIS,// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.// See the License for the specific language governing permissions and// limitations under the License.package modelimport ()// Fingerprint provides a hash-capable representation of a Metric.// For our purposes, FNV-1A 64-bit is used.typeFingerprintuint64// FingerprintFromString transforms a string representation into a Fingerprint.func ( string) (Fingerprint, error) { , := strconv.ParseUint(, 16, 64)returnFingerprint(), }// ParseFingerprint parses the input string into a fingerprint.func ( string) (Fingerprint, error) { , := strconv.ParseUint(, 16, 64)if != nil {return0, }returnFingerprint(), nil}func ( Fingerprint) () string {returnfmt.Sprintf("%016x", uint64())}// Fingerprints represents a collection of Fingerprint subject to a given// natural sorting scheme. It implements sort.Interface.typeFingerprints []Fingerprint// Len implements sort.Interface.func ( Fingerprints) () int {returnlen()}// Less implements sort.Interface.func ( Fingerprints) (, int) bool {return [] < []}// Swap implements sort.Interface.func ( Fingerprints) (, int) { [], [] = [], []}// FingerprintSet is a set of Fingerprints.typeFingerprintSetmap[Fingerprint]struct{}// Equal returns true if both sets contain the same elements (and not more).func ( FingerprintSet) ( FingerprintSet) bool {iflen() != len() {returnfalse }for := range {if , := []; ! {returnfalse } }returntrue}// Intersection returns the elements contained in both sets.func ( FingerprintSet) ( FingerprintSet) FingerprintSet { , := len(), len()if == 0 || == 0 {returnFingerprintSet{} } := := if < { = = } := FingerprintSet{}for := range {if , := []; { [] = struct{}{} } }return}
The pages are generated with Goldsv0.8.2. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.