Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201105173854-bc9fc8d8c4bc / internal / event / export / metric / info.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201105173854-bc9fc8d8c4bc/internal/event/export/metric/info.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/golang.org/x/tools@v0.0.0-20201105173854-bc9fc8d8c4bc/internal/event/export/metric/info.go
new file mode 100644 (file)
index 0000000..a178343
--- /dev/null
@@ -0,0 +1,100 @@
+// Copyright 2019 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 metric
+
+import (
+       "golang.org/x/tools/internal/event/keys"
+       "golang.org/x/tools/internal/event/label"
+)
+
+// Scalar represents the construction information for a scalar metric.
+type Scalar struct {
+       // Name is the unique name of this metric.
+       Name string
+       // Description can be used by observers to describe the metric to users.
+       Description string
+       // Keys is the set of labels that collectively describe rows of the metric.
+       Keys []label.Key
+}
+
+// HistogramInt64 represents the construction information for an int64 histogram metric.
+type HistogramInt64 struct {
+       // Name is the unique name of this metric.
+       Name string
+       // Description can be used by observers to describe the metric to users.
+       Description string
+       // Keys is the set of labels that collectively describe rows of the metric.
+       Keys []label.Key
+       // Buckets holds the inclusive upper bound of each bucket in the histogram.
+       Buckets []int64
+}
+
+// HistogramFloat64 represents the construction information for an float64 histogram metric.
+type HistogramFloat64 struct {
+       // Name is the unique name of this metric.
+       Name string
+       // Description can be used by observers to describe the metric to users.
+       Description string
+       // Keys is the set of labels that collectively describe rows of the metric.
+       Keys []label.Key
+       // Buckets holds the inclusive upper bound of each bucket in the histogram.
+       Buckets []float64
+}
+
+// Count creates a new metric based on the Scalar information that counts
+// the number of times the supplied int64 measure is set.
+// Metrics of this type will use Int64Data.
+func (info Scalar) Count(e *Config, key label.Key) {
+       data := &Int64Data{Info: &info, key: nil}
+       e.subscribe(key, data.count)
+}
+
+// SumInt64 creates a new metric based on the Scalar information that sums all
+// the values recorded on the int64 measure.
+// Metrics of this type will use Int64Data.
+func (info Scalar) SumInt64(e *Config, key *keys.Int64) {
+       data := &Int64Data{Info: &info, key: key}
+       e.subscribe(key, data.sum)
+}
+
+// LatestInt64 creates a new metric based on the Scalar information that tracks
+// the most recent value recorded on the int64 measure.
+// Metrics of this type will use Int64Data.
+func (info Scalar) LatestInt64(e *Config, key *keys.Int64) {
+       data := &Int64Data{Info: &info, IsGauge: true, key: key}
+       e.subscribe(key, data.latest)
+}
+
+// SumFloat64 creates a new metric based on the Scalar information that sums all
+// the values recorded on the float64 measure.
+// Metrics of this type will use Float64Data.
+func (info Scalar) SumFloat64(e *Config, key *keys.Float64) {
+       data := &Float64Data{Info: &info, key: key}
+       e.subscribe(key, data.sum)
+}
+
+// LatestFloat64 creates a new metric based on the Scalar information that tracks
+// the most recent value recorded on the float64 measure.
+// Metrics of this type will use Float64Data.
+func (info Scalar) LatestFloat64(e *Config, key *keys.Float64) {
+       data := &Float64Data{Info: &info, IsGauge: true, key: key}
+       e.subscribe(key, data.latest)
+}
+
+// Record creates a new metric based on the HistogramInt64 information that
+// tracks the bucketized counts of values recorded on the int64 measure.
+// Metrics of this type will use HistogramInt64Data.
+func (info HistogramInt64) Record(e *Config, key *keys.Int64) {
+       data := &HistogramInt64Data{Info: &info, key: key}
+       e.subscribe(key, data.record)
+}
+
+// Record creates a new metric based on the HistogramFloat64 information that
+// tracks the bucketized counts of values recorded on the float64 measure.
+// Metrics of this type will use HistogramFloat64Data.
+func (info HistogramFloat64) Record(e *Config, key *keys.Float64) {
+       data := &HistogramFloat64Data{Info: &info, key: key}
+       e.subscribe(key, data.record)
+}