1// Copyright 2017, OpenCensus Authors
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15
16package stats
17
18// Float64Measure is a measure for float64 values.
19type Float64Measure struct {
20	desc *measureDescriptor
21}
22
23// M creates a new float64 measurement.
24// Use Record to record measurements.
25func (m *Float64Measure) M(v float64) Measurement {
26	return Measurement{
27		m:    m,
28		desc: m.desc,
29		v:    v,
30	}
31}
32
33// Float64 creates a new measure for float64 values.
34//
35// See the documentation for interface Measure for more guidance on the
36// parameters of this function.
37func Float64(name, description, unit string) *Float64Measure {
38	mi := registerMeasureHandle(name, description, unit)
39	return &Float64Measure{mi}
40}
41
42// Name returns the name of the measure.
43func (m *Float64Measure) Name() string {
44	return m.desc.name
45}
46
47// Description returns the description of the measure.
48func (m *Float64Measure) Description() string {
49	return m.desc.description
50}
51
52// Unit returns the unit of the measure.
53func (m *Float64Measure) Unit() string {
54	return m.desc.unit
55}
56