embedded.go

  1// Copyright The OpenTelemetry Authors
  2// SPDX-License-Identifier: Apache-2.0
  3
  4// Package embedded provides interfaces embedded within the [OpenTelemetry
  5// metric API].
  6//
  7// Implementers of the [OpenTelemetry metric API] can embed the relevant type
  8// from this package into their implementation directly. Doing so will result
  9// in a compilation error for users when the [OpenTelemetry metric API] is
 10// extended (which is something that can happen without a major version bump of
 11// the API package).
 12//
 13// [OpenTelemetry metric API]: https://pkg.go.dev/go.opentelemetry.io/otel/metric
 14package embedded // import "go.opentelemetry.io/otel/metric/embedded"
 15
 16// MeterProvider is embedded in
 17// [go.opentelemetry.io/otel/metric.MeterProvider].
 18//
 19// Embed this interface in your implementation of the
 20// [go.opentelemetry.io/otel/metric.MeterProvider] if you want users to
 21// experience a compilation error, signaling they need to update to your latest
 22// implementation, when the [go.opentelemetry.io/otel/metric.MeterProvider]
 23// interface is extended (which is something that can happen without a major
 24// version bump of the API package).
 25type MeterProvider interface{ meterProvider() }
 26
 27// Meter is embedded in [go.opentelemetry.io/otel/metric.Meter].
 28//
 29// Embed this interface in your implementation of the
 30// [go.opentelemetry.io/otel/metric.Meter] if you want users to experience a
 31// compilation error, signaling they need to update to your latest
 32// implementation, when the [go.opentelemetry.io/otel/metric.Meter] interface
 33// is extended (which is something that can happen without a major version bump
 34// of the API package).
 35type Meter interface{ meter() }
 36
 37// Float64Observer is embedded in
 38// [go.opentelemetry.io/otel/metric.Float64Observer].
 39//
 40// Embed this interface in your implementation of the
 41// [go.opentelemetry.io/otel/metric.Float64Observer] if you want
 42// users to experience a compilation error, signaling they need to update to
 43// your latest implementation, when the
 44// [go.opentelemetry.io/otel/metric.Float64Observer] interface is
 45// extended (which is something that can happen without a major version bump of
 46// the API package).
 47type Float64Observer interface{ float64Observer() }
 48
 49// Int64Observer is embedded in
 50// [go.opentelemetry.io/otel/metric.Int64Observer].
 51//
 52// Embed this interface in your implementation of the
 53// [go.opentelemetry.io/otel/metric.Int64Observer] if you want users
 54// to experience a compilation error, signaling they need to update to your
 55// latest implementation, when the
 56// [go.opentelemetry.io/otel/metric.Int64Observer] interface is
 57// extended (which is something that can happen without a major version bump of
 58// the API package).
 59type Int64Observer interface{ int64Observer() }
 60
 61// Observer is embedded in [go.opentelemetry.io/otel/metric.Observer].
 62//
 63// Embed this interface in your implementation of the
 64// [go.opentelemetry.io/otel/metric.Observer] if you want users to experience a
 65// compilation error, signaling they need to update to your latest
 66// implementation, when the [go.opentelemetry.io/otel/metric.Observer]
 67// interface is extended (which is something that can happen without a major
 68// version bump of the API package).
 69type Observer interface{ observer() }
 70
 71// Registration is embedded in [go.opentelemetry.io/otel/metric.Registration].
 72//
 73// Embed this interface in your implementation of the
 74// [go.opentelemetry.io/otel/metric.Registration] if you want users to
 75// experience a compilation error, signaling they need to update to your latest
 76// implementation, when the [go.opentelemetry.io/otel/metric.Registration]
 77// interface is extended (which is something that can happen without a major
 78// version bump of the API package).
 79type Registration interface{ registration() }
 80
 81// Float64Counter is embedded in
 82// [go.opentelemetry.io/otel/metric.Float64Counter].
 83//
 84// Embed this interface in your implementation of the
 85// [go.opentelemetry.io/otel/metric.Float64Counter] if you want
 86// users to experience a compilation error, signaling they need to update to
 87// your latest implementation, when the
 88// [go.opentelemetry.io/otel/metric.Float64Counter] interface is
 89// extended (which is something that can happen without a major version bump of
 90// the API package).
 91type Float64Counter interface{ float64Counter() }
 92
 93// Float64Histogram is embedded in
 94// [go.opentelemetry.io/otel/metric.Float64Histogram].
 95//
 96// Embed this interface in your implementation of the
 97// [go.opentelemetry.io/otel/metric.Float64Histogram] if you want
 98// users to experience a compilation error, signaling they need to update to
 99// your latest implementation, when the
100// [go.opentelemetry.io/otel/metric.Float64Histogram] interface is
101// extended (which is something that can happen without a major version bump of
102// the API package).
103type Float64Histogram interface{ float64Histogram() }
104
105// Float64Gauge is embedded in [go.opentelemetry.io/otel/metric.Float64Gauge].
106//
107// Embed this interface in your implementation of the
108// [go.opentelemetry.io/otel/metric.Float64Gauge] if you want users to
109// experience a compilation error, signaling they need to update to your latest
110// implementation, when the [go.opentelemetry.io/otel/metric.Float64Gauge]
111// interface is extended (which is something that can happen without a major
112// version bump of the API package).
113type Float64Gauge interface{ float64Gauge() }
114
115// Float64ObservableCounter is embedded in
116// [go.opentelemetry.io/otel/metric.Float64ObservableCounter].
117//
118// Embed this interface in your implementation of the
119// [go.opentelemetry.io/otel/metric.Float64ObservableCounter] if you
120// want users to experience a compilation error, signaling they need to update
121// to your latest implementation, when the
122// [go.opentelemetry.io/otel/metric.Float64ObservableCounter]
123// interface is extended (which is something that can happen without a major
124// version bump of the API package).
125type Float64ObservableCounter interface{ float64ObservableCounter() }
126
127// Float64ObservableGauge is embedded in
128// [go.opentelemetry.io/otel/metric.Float64ObservableGauge].
129//
130// Embed this interface in your implementation of the
131// [go.opentelemetry.io/otel/metric.Float64ObservableGauge] if you
132// want users to experience a compilation error, signaling they need to update
133// to your latest implementation, when the
134// [go.opentelemetry.io/otel/metric.Float64ObservableGauge]
135// interface is extended (which is something that can happen without a major
136// version bump of the API package).
137type Float64ObservableGauge interface{ float64ObservableGauge() }
138
139// Float64ObservableUpDownCounter is embedded in
140// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter].
141//
142// Embed this interface in your implementation of the
143// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]
144// if you want users to experience a compilation error, signaling they need to
145// update to your latest implementation, when the
146// [go.opentelemetry.io/otel/metric.Float64ObservableUpDownCounter]
147// interface is extended (which is something that can happen without a major
148// version bump of the API package).
149type Float64ObservableUpDownCounter interface{ float64ObservableUpDownCounter() }
150
151// Float64UpDownCounter is embedded in
152// [go.opentelemetry.io/otel/metric.Float64UpDownCounter].
153//
154// Embed this interface in your implementation of the
155// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] if you
156// want users to experience a compilation error, signaling they need to update
157// to your latest implementation, when the
158// [go.opentelemetry.io/otel/metric.Float64UpDownCounter] interface
159// is extended (which is something that can happen without a major version bump
160// of the API package).
161type Float64UpDownCounter interface{ float64UpDownCounter() }
162
163// Int64Counter is embedded in
164// [go.opentelemetry.io/otel/metric.Int64Counter].
165//
166// Embed this interface in your implementation of the
167// [go.opentelemetry.io/otel/metric.Int64Counter] if you want users
168// to experience a compilation error, signaling they need to update to your
169// latest implementation, when the
170// [go.opentelemetry.io/otel/metric.Int64Counter] interface is
171// extended (which is something that can happen without a major version bump of
172// the API package).
173type Int64Counter interface{ int64Counter() }
174
175// Int64Histogram is embedded in
176// [go.opentelemetry.io/otel/metric.Int64Histogram].
177//
178// Embed this interface in your implementation of the
179// [go.opentelemetry.io/otel/metric.Int64Histogram] if you want
180// users to experience a compilation error, signaling they need to update to
181// your latest implementation, when the
182// [go.opentelemetry.io/otel/metric.Int64Histogram] interface is
183// extended (which is something that can happen without a major version bump of
184// the API package).
185type Int64Histogram interface{ int64Histogram() }
186
187// Int64Gauge is embedded in [go.opentelemetry.io/otel/metric.Int64Gauge].
188//
189// Embed this interface in your implementation of the
190// [go.opentelemetry.io/otel/metric.Int64Gauge] if you want users to experience
191// a compilation error, signaling they need to update to your latest
192// implementation, when the [go.opentelemetry.io/otel/metric.Int64Gauge]
193// interface is extended (which is something that can happen without a major
194// version bump of the API package).
195type Int64Gauge interface{ int64Gauge() }
196
197// Int64ObservableCounter is embedded in
198// [go.opentelemetry.io/otel/metric.Int64ObservableCounter].
199//
200// Embed this interface in your implementation of the
201// [go.opentelemetry.io/otel/metric.Int64ObservableCounter] if you
202// want users to experience a compilation error, signaling they need to update
203// to your latest implementation, when the
204// [go.opentelemetry.io/otel/metric.Int64ObservableCounter]
205// interface is extended (which is something that can happen without a major
206// version bump of the API package).
207type Int64ObservableCounter interface{ int64ObservableCounter() }
208
209// Int64ObservableGauge is embedded in
210// [go.opentelemetry.io/otel/metric.Int64ObservableGauge].
211//
212// Embed this interface in your implementation of the
213// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] if you
214// want users to experience a compilation error, signaling they need to update
215// to your latest implementation, when the
216// [go.opentelemetry.io/otel/metric.Int64ObservableGauge] interface
217// is extended (which is something that can happen without a major version bump
218// of the API package).
219type Int64ObservableGauge interface{ int64ObservableGauge() }
220
221// Int64ObservableUpDownCounter is embedded in
222// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter].
223//
224// Embed this interface in your implementation of the
225// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter] if
226// you want users to experience a compilation error, signaling they need to
227// update to your latest implementation, when the
228// [go.opentelemetry.io/otel/metric.Int64ObservableUpDownCounter]
229// interface is extended (which is something that can happen without a major
230// version bump of the API package).
231type Int64ObservableUpDownCounter interface{ int64ObservableUpDownCounter() }
232
233// Int64UpDownCounter is embedded in
234// [go.opentelemetry.io/otel/metric.Int64UpDownCounter].
235//
236// Embed this interface in your implementation of the
237// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] if you want
238// users to experience a compilation error, signaling they need to update to
239// your latest implementation, when the
240// [go.opentelemetry.io/otel/metric.Int64UpDownCounter] interface is
241// extended (which is something that can happen without a major version bump of
242// the API package).
243type Int64UpDownCounter interface{ int64UpDownCounter() }