Source File
value.go
Belonging Package
runtime/metrics
// Copyright 2020 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package metrics
import (
)
// ValueKind is a tag for a metric [Value] which indicates its type.
type ValueKind int
const (
// KindBad indicates that the Value has no type and should not be used.
KindBad ValueKind = iota
// KindUint64 indicates that the type of the Value is a uint64.
KindUint64
// KindFloat64 indicates that the type of the Value is a float64.
KindFloat64
// KindFloat64Histogram indicates that the type of the Value is a *Float64Histogram.
KindFloat64Histogram
)
// Value represents a metric value returned by the runtime.
type Value struct {
kind ValueKind
scalar uint64 // contains scalar values for scalar Kinds.
pointer unsafe.Pointer // contains non-scalar values.
}
// Kind returns the tag representing the kind of value this is.
func ( Value) () ValueKind {
return .kind
}
// Uint64 returns the internal uint64 value for the metric.
//
// If v.Kind() != KindUint64, this method panics.
func ( Value) () uint64 {
if .kind != KindUint64 {
panic("called Uint64 on non-uint64 metric value")
}
return .scalar
}
// Float64 returns the internal float64 value for the metric.
//
// If v.Kind() != KindFloat64, this method panics.
func ( Value) () float64 {
if .kind != KindFloat64 {
panic("called Float64 on non-float64 metric value")
}
return math.Float64frombits(.scalar)
}
// Float64Histogram returns the internal *Float64Histogram value for the metric.
//
// If v.Kind() != KindFloat64Histogram, this method panics.
func ( Value) () *Float64Histogram {
if .kind != KindFloat64Histogram {
panic("called Float64Histogram on non-Float64Histogram metric value")
}
return (*Float64Histogram)(.pointer)
}
The pages are generated with Golds v0.7.0-preview. (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. |