summaryrefslogtreecommitdiff
path: root/vendor/go.opentelemetry.io/otel/attribute
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-12-01 22:08:04 +0100
commitb1af8fd87760b34e3ff2fd3bda38f211815a0473 (patch)
tree9317fad1a7ec298d7a8d2678e4e422953bbc6f33 /vendor/go.opentelemetry.io/otel/attribute
parent[chore] update URLs to forked source (diff)
downloadgotosocial-b1af8fd87760b34e3ff2fd3bda38f211815a0473.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/go.opentelemetry.io/otel/attribute')
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/README.md3
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/doc.go5
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/encoder.go135
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/filter.go49
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go96
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/iterator.go151
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/key.go123
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/kv.go75
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/rawhelpers.go37
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/set.go411
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/type_string.go31
-rw-r--r--vendor/go.opentelemetry.io/otel/attribute/value.go270
12 files changed, 0 insertions, 1386 deletions
diff --git a/vendor/go.opentelemetry.io/otel/attribute/README.md b/vendor/go.opentelemetry.io/otel/attribute/README.md
deleted file mode 100644
index 5b3da8f14..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Attribute
-
-[![PkgGoDev](https://pkg.go.dev/badge/go.opentelemetry.io/otel/attribute)](https://pkg.go.dev/go.opentelemetry.io/otel/attribute)
diff --git a/vendor/go.opentelemetry.io/otel/attribute/doc.go b/vendor/go.opentelemetry.io/otel/attribute/doc.go
deleted file mode 100644
index eef51ebc2..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/doc.go
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-// Package attribute provides key and value attributes.
-package attribute // import "go.opentelemetry.io/otel/attribute"
diff --git a/vendor/go.opentelemetry.io/otel/attribute/encoder.go b/vendor/go.opentelemetry.io/otel/attribute/encoder.go
deleted file mode 100644
index 6333d34b3..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/encoder.go
+++ /dev/null
@@ -1,135 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "bytes"
- "sync"
- "sync/atomic"
-)
-
-type (
- // Encoder is a mechanism for serializing an attribute set into a specific
- // string representation that supports caching, to avoid repeated
- // serialization. An example could be an exporter encoding the attribute
- // set into a wire representation.
- Encoder interface {
- // Encode returns the serialized encoding of the attribute set using
- // its Iterator. This result may be cached by a attribute.Set.
- Encode(iterator Iterator) string
-
- // ID returns a value that is unique for each class of attribute
- // encoder. Attribute encoders allocate these using `NewEncoderID`.
- ID() EncoderID
- }
-
- // EncoderID is used to identify distinct Encoder
- // implementations, for caching encoded results.
- EncoderID struct {
- value uint64
- }
-
- // defaultAttrEncoder uses a sync.Pool of buffers to reduce the number of
- // allocations used in encoding attributes. This implementation encodes a
- // comma-separated list of key=value, with '/'-escaping of '=', ',', and
- // '\'.
- defaultAttrEncoder struct {
- // pool is a pool of attribute set builders. The buffers in this pool
- // grow to a size that most attribute encodings will not allocate new
- // memory.
- pool sync.Pool // *bytes.Buffer
- }
-)
-
-// escapeChar is used to ensure uniqueness of the attribute encoding where
-// keys or values contain either '=' or ','. Since there is no parser needed
-// for this encoding and its only requirement is to be unique, this choice is
-// arbitrary. Users will see these in some exporters (e.g., stdout), so the
-// backslash ('\') is used as a conventional choice.
-const escapeChar = '\\'
-
-var (
- _ Encoder = &defaultAttrEncoder{}
-
- // encoderIDCounter is for generating IDs for other attribute encoders.
- encoderIDCounter uint64
-
- defaultEncoderOnce sync.Once
- defaultEncoderID = NewEncoderID()
- defaultEncoderInstance *defaultAttrEncoder
-)
-
-// NewEncoderID returns a unique attribute encoder ID. It should be called
-// once per each type of attribute encoder. Preferably in init() or in var
-// definition.
-func NewEncoderID() EncoderID {
- return EncoderID{value: atomic.AddUint64(&encoderIDCounter, 1)}
-}
-
-// DefaultEncoder returns an attribute encoder that encodes attributes in such
-// a way that each escaped attribute's key is followed by an equal sign and
-// then by an escaped attribute's value. All key-value pairs are separated by
-// a comma.
-//
-// Escaping is done by prepending a backslash before either a backslash, equal
-// sign or a comma.
-func DefaultEncoder() Encoder {
- defaultEncoderOnce.Do(func() {
- defaultEncoderInstance = &defaultAttrEncoder{
- pool: sync.Pool{
- New: func() any {
- return &bytes.Buffer{}
- },
- },
- }
- })
- return defaultEncoderInstance
-}
-
-// Encode is a part of an implementation of the AttributeEncoder interface.
-func (d *defaultAttrEncoder) Encode(iter Iterator) string {
- buf := d.pool.Get().(*bytes.Buffer)
- defer d.pool.Put(buf)
- buf.Reset()
-
- for iter.Next() {
- i, keyValue := iter.IndexedAttribute()
- if i > 0 {
- _ = buf.WriteByte(',')
- }
- copyAndEscape(buf, string(keyValue.Key))
-
- _ = buf.WriteByte('=')
-
- if keyValue.Value.Type() == STRING {
- copyAndEscape(buf, keyValue.Value.AsString())
- } else {
- _, _ = buf.WriteString(keyValue.Value.Emit())
- }
- }
- return buf.String()
-}
-
-// ID is a part of an implementation of the AttributeEncoder interface.
-func (*defaultAttrEncoder) ID() EncoderID {
- return defaultEncoderID
-}
-
-// copyAndEscape escapes `=`, `,` and its own escape character (`\`),
-// making the default encoding unique.
-func copyAndEscape(buf *bytes.Buffer, val string) {
- for _, ch := range val {
- switch ch {
- case '=', ',', escapeChar:
- _ = buf.WriteByte(escapeChar)
- }
- _, _ = buf.WriteRune(ch)
- }
-}
-
-// Valid reports whether this encoder ID was allocated by
-// [NewEncoderID]. Invalid encoder IDs will not be cached.
-func (id EncoderID) Valid() bool {
- return id.value != 0
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/filter.go b/vendor/go.opentelemetry.io/otel/attribute/filter.go
deleted file mode 100644
index 624ebbe38..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/filter.go
+++ /dev/null
@@ -1,49 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-// Filter supports removing certain attributes from attribute sets. When
-// the filter returns true, the attribute will be kept in the filtered
-// attribute set. When the filter returns false, the attribute is excluded
-// from the filtered attribute set, and the attribute instead appears in
-// the removed list of excluded attributes.
-type Filter func(KeyValue) bool
-
-// NewAllowKeysFilter returns a Filter that only allows attributes with one of
-// the provided keys.
-//
-// If keys is empty a deny-all filter is returned.
-func NewAllowKeysFilter(keys ...Key) Filter {
- if len(keys) == 0 {
- return func(KeyValue) bool { return false }
- }
-
- allowed := make(map[Key]struct{}, len(keys))
- for _, k := range keys {
- allowed[k] = struct{}{}
- }
- return func(kv KeyValue) bool {
- _, ok := allowed[kv.Key]
- return ok
- }
-}
-
-// NewDenyKeysFilter returns a Filter that only allows attributes
-// that do not have one of the provided keys.
-//
-// If keys is empty an allow-all filter is returned.
-func NewDenyKeysFilter(keys ...Key) Filter {
- if len(keys) == 0 {
- return func(KeyValue) bool { return true }
- }
-
- forbid := make(map[Key]struct{}, len(keys))
- for _, k := range keys {
- forbid[k] = struct{}{}
- }
- return func(kv KeyValue) bool {
- _, ok := forbid[kv.Key]
- return !ok
- }
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go b/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go
deleted file mode 100644
index 087550430..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/internal/attribute.go
+++ /dev/null
@@ -1,96 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-/*
-Package attribute provide several helper functions for some commonly used
-logic of processing attributes.
-*/
-package attribute // import "go.opentelemetry.io/otel/attribute/internal"
-
-import (
- "reflect"
-)
-
-// BoolSliceValue converts a bool slice into an array with same elements as slice.
-func BoolSliceValue(v []bool) any {
- var zero bool
- cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
- reflect.Copy(cp, reflect.ValueOf(v))
- return cp.Interface()
-}
-
-// Int64SliceValue converts an int64 slice into an array with same elements as slice.
-func Int64SliceValue(v []int64) any {
- var zero int64
- cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
- reflect.Copy(cp, reflect.ValueOf(v))
- return cp.Interface()
-}
-
-// Float64SliceValue converts a float64 slice into an array with same elements as slice.
-func Float64SliceValue(v []float64) any {
- var zero float64
- cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
- reflect.Copy(cp, reflect.ValueOf(v))
- return cp.Interface()
-}
-
-// StringSliceValue converts a string slice into an array with same elements as slice.
-func StringSliceValue(v []string) any {
- var zero string
- cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(zero))).Elem()
- reflect.Copy(cp, reflect.ValueOf(v))
- return cp.Interface()
-}
-
-// AsBoolSlice converts a bool array into a slice into with same elements as array.
-func AsBoolSlice(v any) []bool {
- rv := reflect.ValueOf(v)
- if rv.Type().Kind() != reflect.Array {
- return nil
- }
- cpy := make([]bool, rv.Len())
- if len(cpy) > 0 {
- _ = reflect.Copy(reflect.ValueOf(cpy), rv)
- }
- return cpy
-}
-
-// AsInt64Slice converts an int64 array into a slice into with same elements as array.
-func AsInt64Slice(v any) []int64 {
- rv := reflect.ValueOf(v)
- if rv.Type().Kind() != reflect.Array {
- return nil
- }
- cpy := make([]int64, rv.Len())
- if len(cpy) > 0 {
- _ = reflect.Copy(reflect.ValueOf(cpy), rv)
- }
- return cpy
-}
-
-// AsFloat64Slice converts a float64 array into a slice into with same elements as array.
-func AsFloat64Slice(v any) []float64 {
- rv := reflect.ValueOf(v)
- if rv.Type().Kind() != reflect.Array {
- return nil
- }
- cpy := make([]float64, rv.Len())
- if len(cpy) > 0 {
- _ = reflect.Copy(reflect.ValueOf(cpy), rv)
- }
- return cpy
-}
-
-// AsStringSlice converts a string array into a slice into with same elements as array.
-func AsStringSlice(v any) []string {
- rv := reflect.ValueOf(v)
- if rv.Type().Kind() != reflect.Array {
- return nil
- }
- cpy := make([]string, rv.Len())
- if len(cpy) > 0 {
- _ = reflect.Copy(reflect.ValueOf(cpy), rv)
- }
- return cpy
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/iterator.go b/vendor/go.opentelemetry.io/otel/attribute/iterator.go
deleted file mode 100644
index 8df6249f0..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/iterator.go
+++ /dev/null
@@ -1,151 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-// Iterator allows iterating over the set of attributes in order, sorted by
-// key.
-type Iterator struct {
- storage *Set
- idx int
-}
-
-// MergeIterator supports iterating over two sets of attributes while
-// eliminating duplicate values from the combined set. The first iterator
-// value takes precedence.
-type MergeIterator struct {
- one oneIterator
- two oneIterator
- current KeyValue
-}
-
-type oneIterator struct {
- iter Iterator
- done bool
- attr KeyValue
-}
-
-// Next moves the iterator to the next position.
-// Next reports whether there are more attributes.
-func (i *Iterator) Next() bool {
- i.idx++
- return i.idx < i.Len()
-}
-
-// Label returns current KeyValue. Must be called only after Next returns
-// true.
-//
-// Deprecated: Use Attribute instead.
-func (i *Iterator) Label() KeyValue {
- return i.Attribute()
-}
-
-// Attribute returns the current KeyValue of the Iterator. It must be called
-// only after Next returns true.
-func (i *Iterator) Attribute() KeyValue {
- kv, _ := i.storage.Get(i.idx)
- return kv
-}
-
-// IndexedLabel returns current index and attribute. Must be called only
-// after Next returns true.
-//
-// Deprecated: Use IndexedAttribute instead.
-func (i *Iterator) IndexedLabel() (int, KeyValue) {
- return i.idx, i.Attribute()
-}
-
-// IndexedAttribute returns current index and attribute. Must be called only
-// after Next returns true.
-func (i *Iterator) IndexedAttribute() (int, KeyValue) {
- return i.idx, i.Attribute()
-}
-
-// Len returns a number of attributes in the iterated set.
-func (i *Iterator) Len() int {
- return i.storage.Len()
-}
-
-// ToSlice is a convenience function that creates a slice of attributes from
-// the passed iterator. The iterator is set up to start from the beginning
-// before creating the slice.
-func (i *Iterator) ToSlice() []KeyValue {
- l := i.Len()
- if l == 0 {
- return nil
- }
- i.idx = -1
- slice := make([]KeyValue, 0, l)
- for i.Next() {
- slice = append(slice, i.Attribute())
- }
- return slice
-}
-
-// NewMergeIterator returns a MergeIterator for merging two attribute sets.
-// Duplicates are resolved by taking the value from the first set.
-func NewMergeIterator(s1, s2 *Set) MergeIterator {
- mi := MergeIterator{
- one: makeOne(s1.Iter()),
- two: makeOne(s2.Iter()),
- }
- return mi
-}
-
-func makeOne(iter Iterator) oneIterator {
- oi := oneIterator{
- iter: iter,
- }
- oi.advance()
- return oi
-}
-
-func (oi *oneIterator) advance() {
- if oi.done = !oi.iter.Next(); !oi.done {
- oi.attr = oi.iter.Attribute()
- }
-}
-
-// Next moves the iterator to the next position.
-// Next reports whether there is another attribute available.
-func (m *MergeIterator) Next() bool {
- if m.one.done && m.two.done {
- return false
- }
- if m.one.done {
- m.current = m.two.attr
- m.two.advance()
- return true
- }
- if m.two.done {
- m.current = m.one.attr
- m.one.advance()
- return true
- }
- if m.one.attr.Key == m.two.attr.Key {
- m.current = m.one.attr // first iterator attribute value wins
- m.one.advance()
- m.two.advance()
- return true
- }
- if m.one.attr.Key < m.two.attr.Key {
- m.current = m.one.attr
- m.one.advance()
- return true
- }
- m.current = m.two.attr
- m.two.advance()
- return true
-}
-
-// Label returns the current value after Next() returns true.
-//
-// Deprecated: Use Attribute instead.
-func (m *MergeIterator) Label() KeyValue {
- return m.current
-}
-
-// Attribute returns the current value after Next() returns true.
-func (m *MergeIterator) Attribute() KeyValue {
- return m.current
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/key.go b/vendor/go.opentelemetry.io/otel/attribute/key.go
deleted file mode 100644
index 80a9e5643..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/key.go
+++ /dev/null
@@ -1,123 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-// Key represents the key part in key-value pairs. It's a string. The
-// allowed character set in the key depends on the use of the key.
-type Key string
-
-// Bool creates a KeyValue instance with a BOOL Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- Bool(name, value).
-func (k Key) Bool(v bool) KeyValue {
- return KeyValue{
- Key: k,
- Value: BoolValue(v),
- }
-}
-
-// BoolSlice creates a KeyValue instance with a BOOLSLICE Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- BoolSlice(name, value).
-func (k Key) BoolSlice(v []bool) KeyValue {
- return KeyValue{
- Key: k,
- Value: BoolSliceValue(v),
- }
-}
-
-// Int creates a KeyValue instance with an INT64 Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- Int(name, value).
-func (k Key) Int(v int) KeyValue {
- return KeyValue{
- Key: k,
- Value: IntValue(v),
- }
-}
-
-// IntSlice creates a KeyValue instance with an INT64SLICE Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- IntSlice(name, value).
-func (k Key) IntSlice(v []int) KeyValue {
- return KeyValue{
- Key: k,
- Value: IntSliceValue(v),
- }
-}
-
-// Int64 creates a KeyValue instance with an INT64 Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- Int64(name, value).
-func (k Key) Int64(v int64) KeyValue {
- return KeyValue{
- Key: k,
- Value: Int64Value(v),
- }
-}
-
-// Int64Slice creates a KeyValue instance with an INT64SLICE Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- Int64Slice(name, value).
-func (k Key) Int64Slice(v []int64) KeyValue {
- return KeyValue{
- Key: k,
- Value: Int64SliceValue(v),
- }
-}
-
-// Float64 creates a KeyValue instance with a FLOAT64 Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- Float64(name, value).
-func (k Key) Float64(v float64) KeyValue {
- return KeyValue{
- Key: k,
- Value: Float64Value(v),
- }
-}
-
-// Float64Slice creates a KeyValue instance with a FLOAT64SLICE Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- Float64(name, value).
-func (k Key) Float64Slice(v []float64) KeyValue {
- return KeyValue{
- Key: k,
- Value: Float64SliceValue(v),
- }
-}
-
-// String creates a KeyValue instance with a STRING Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- String(name, value).
-func (k Key) String(v string) KeyValue {
- return KeyValue{
- Key: k,
- Value: StringValue(v),
- }
-}
-
-// StringSlice creates a KeyValue instance with a STRINGSLICE Value.
-//
-// If creating both a key and value at the same time, use the provided
-// convenience function instead -- StringSlice(name, value).
-func (k Key) StringSlice(v []string) KeyValue {
- return KeyValue{
- Key: k,
- Value: StringSliceValue(v),
- }
-}
-
-// Defined reports whether the key is not empty.
-func (k Key) Defined() bool {
- return len(k) != 0
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/kv.go b/vendor/go.opentelemetry.io/otel/attribute/kv.go
deleted file mode 100644
index 8c6928ca7..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/kv.go
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "fmt"
-)
-
-// KeyValue holds a key and value pair.
-type KeyValue struct {
- Key Key
- Value Value
-}
-
-// Valid reports whether kv is a valid OpenTelemetry attribute.
-func (kv KeyValue) Valid() bool {
- return kv.Key.Defined() && kv.Value.Type() != INVALID
-}
-
-// Bool creates a KeyValue with a BOOL Value type.
-func Bool(k string, v bool) KeyValue {
- return Key(k).Bool(v)
-}
-
-// BoolSlice creates a KeyValue with a BOOLSLICE Value type.
-func BoolSlice(k string, v []bool) KeyValue {
- return Key(k).BoolSlice(v)
-}
-
-// Int creates a KeyValue with an INT64 Value type.
-func Int(k string, v int) KeyValue {
- return Key(k).Int(v)
-}
-
-// IntSlice creates a KeyValue with an INT64SLICE Value type.
-func IntSlice(k string, v []int) KeyValue {
- return Key(k).IntSlice(v)
-}
-
-// Int64 creates a KeyValue with an INT64 Value type.
-func Int64(k string, v int64) KeyValue {
- return Key(k).Int64(v)
-}
-
-// Int64Slice creates a KeyValue with an INT64SLICE Value type.
-func Int64Slice(k string, v []int64) KeyValue {
- return Key(k).Int64Slice(v)
-}
-
-// Float64 creates a KeyValue with a FLOAT64 Value type.
-func Float64(k string, v float64) KeyValue {
- return Key(k).Float64(v)
-}
-
-// Float64Slice creates a KeyValue with a FLOAT64SLICE Value type.
-func Float64Slice(k string, v []float64) KeyValue {
- return Key(k).Float64Slice(v)
-}
-
-// String creates a KeyValue with a STRING Value type.
-func String(k, v string) KeyValue {
- return Key(k).String(v)
-}
-
-// StringSlice creates a KeyValue with a STRINGSLICE Value type.
-func StringSlice(k string, v []string) KeyValue {
- return Key(k).StringSlice(v)
-}
-
-// Stringer creates a new key-value pair with a passed name and a string
-// value generated by the passed Stringer interface.
-func Stringer(k string, v fmt.Stringer) KeyValue {
- return Key(k).String(v.String())
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/rawhelpers.go b/vendor/go.opentelemetry.io/otel/attribute/rawhelpers.go
deleted file mode 100644
index 5791c6e7a..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/rawhelpers.go
+++ /dev/null
@@ -1,37 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "math"
-)
-
-func boolToRaw(b bool) uint64 { // nolint:revive // b is not a control flag.
- if b {
- return 1
- }
- return 0
-}
-
-func rawToBool(r uint64) bool {
- return r != 0
-}
-
-func int64ToRaw(i int64) uint64 {
- // Assumes original was a valid int64 (overflow not checked).
- return uint64(i) // nolint: gosec
-}
-
-func rawToInt64(r uint64) int64 {
- // Assumes original was a valid int64 (overflow not checked).
- return int64(r) // nolint: gosec
-}
-
-func float64ToRaw(f float64) uint64 {
- return math.Float64bits(f)
-}
-
-func rawToFloat64(r uint64) float64 {
- return math.Float64frombits(r)
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/set.go b/vendor/go.opentelemetry.io/otel/attribute/set.go
deleted file mode 100644
index 64735d382..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/set.go
+++ /dev/null
@@ -1,411 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "cmp"
- "encoding/json"
- "reflect"
- "slices"
- "sort"
-)
-
-type (
- // Set is the representation for a distinct attribute set. It manages an
- // immutable set of attributes, with an internal cache for storing
- // attribute encodings.
- //
- // This type will remain comparable for backwards compatibility. The
- // equivalence of Sets across versions is not guaranteed to be stable.
- // Prior versions may find two Sets to be equal or not when compared
- // directly (i.e. ==), but subsequent versions may not. Users should use
- // the Equals method to ensure stable equivalence checking.
- //
- // Users should also use the Distinct returned from Equivalent as a map key
- // instead of a Set directly. In addition to that type providing guarantees
- // on stable equivalence, it may also provide performance improvements.
- Set struct {
- equivalent Distinct
- }
-
- // Distinct is a unique identifier of a Set.
- //
- // Distinct is designed to ensure equivalence stability: comparisons will
- // return the same value across versions. For this reason, Distinct should
- // always be used as a map key instead of a Set.
- Distinct struct {
- iface any
- }
-
- // Sortable implements sort.Interface, used for sorting KeyValue.
- //
- // Deprecated: This type is no longer used. It was added as a performance
- // optimization for Go < 1.21 that is no longer needed (Go < 1.21 is no
- // longer supported by the module).
- Sortable []KeyValue
-)
-
-var (
- // keyValueType is used in computeDistinctReflect.
- keyValueType = reflect.TypeOf(KeyValue{})
-
- // emptySet is returned for empty attribute sets.
- emptySet = &Set{
- equivalent: Distinct{
- iface: [0]KeyValue{},
- },
- }
-)
-
-// EmptySet returns a reference to a Set with no elements.
-//
-// This is a convenience provided for optimized calling utility.
-func EmptySet() *Set {
- return emptySet
-}
-
-// reflectValue abbreviates reflect.ValueOf(d).
-func (d Distinct) reflectValue() reflect.Value {
- return reflect.ValueOf(d.iface)
-}
-
-// Valid reports whether this value refers to a valid Set.
-func (d Distinct) Valid() bool {
- return d.iface != nil
-}
-
-// Len returns the number of attributes in this set.
-func (l *Set) Len() int {
- if l == nil || !l.equivalent.Valid() {
- return 0
- }
- return l.equivalent.reflectValue().Len()
-}
-
-// Get returns the KeyValue at ordered position idx in this set.
-func (l *Set) Get(idx int) (KeyValue, bool) {
- if l == nil || !l.equivalent.Valid() {
- return KeyValue{}, false
- }
- value := l.equivalent.reflectValue()
-
- if idx >= 0 && idx < value.Len() {
- // Note: The Go compiler successfully avoids an allocation for
- // the interface{} conversion here:
- return value.Index(idx).Interface().(KeyValue), true
- }
-
- return KeyValue{}, false
-}
-
-// Value returns the value of a specified key in this set.
-func (l *Set) Value(k Key) (Value, bool) {
- if l == nil || !l.equivalent.Valid() {
- return Value{}, false
- }
- rValue := l.equivalent.reflectValue()
- vlen := rValue.Len()
-
- idx := sort.Search(vlen, func(idx int) bool {
- return rValue.Index(idx).Interface().(KeyValue).Key >= k
- })
- if idx >= vlen {
- return Value{}, false
- }
- keyValue := rValue.Index(idx).Interface().(KeyValue)
- if k == keyValue.Key {
- return keyValue.Value, true
- }
- return Value{}, false
-}
-
-// HasValue reports whether a key is defined in this set.
-func (l *Set) HasValue(k Key) bool {
- if l == nil {
- return false
- }
- _, ok := l.Value(k)
- return ok
-}
-
-// Iter returns an iterator for visiting the attributes in this set.
-func (l *Set) Iter() Iterator {
- return Iterator{
- storage: l,
- idx: -1,
- }
-}
-
-// ToSlice returns the set of attributes belonging to this set, sorted, where
-// keys appear no more than once.
-func (l *Set) ToSlice() []KeyValue {
- iter := l.Iter()
- return iter.ToSlice()
-}
-
-// Equivalent returns a value that may be used as a map key. The Distinct type
-// guarantees that the result will equal the equivalent. Distinct value of any
-// attribute set with the same elements as this, where sets are made unique by
-// choosing the last value in the input for any given key.
-func (l *Set) Equivalent() Distinct {
- if l == nil || !l.equivalent.Valid() {
- return emptySet.equivalent
- }
- return l.equivalent
-}
-
-// Equals reports whether the argument set is equivalent to this set.
-func (l *Set) Equals(o *Set) bool {
- return l.Equivalent() == o.Equivalent()
-}
-
-// Encoded returns the encoded form of this set, according to encoder.
-func (l *Set) Encoded(encoder Encoder) string {
- if l == nil || encoder == nil {
- return ""
- }
-
- return encoder.Encode(l.Iter())
-}
-
-func empty() Set {
- return Set{
- equivalent: emptySet.equivalent,
- }
-}
-
-// NewSet returns a new Set. See the documentation for
-// NewSetWithSortableFiltered for more details.
-//
-// Except for empty sets, this method adds an additional allocation compared
-// with calls that include a Sortable.
-func NewSet(kvs ...KeyValue) Set {
- s, _ := NewSetWithFiltered(kvs, nil)
- return s
-}
-
-// NewSetWithSortable returns a new Set. See the documentation for
-// NewSetWithSortableFiltered for more details.
-//
-// This call includes a Sortable option as a memory optimization.
-//
-// Deprecated: Use [NewSet] instead.
-func NewSetWithSortable(kvs []KeyValue, _ *Sortable) Set {
- s, _ := NewSetWithFiltered(kvs, nil)
- return s
-}
-
-// NewSetWithFiltered returns a new Set. See the documentation for
-// NewSetWithSortableFiltered for more details.
-//
-// This call includes a Filter to include/exclude attribute keys from the
-// return value. Excluded keys are returned as a slice of attribute values.
-func NewSetWithFiltered(kvs []KeyValue, filter Filter) (Set, []KeyValue) {
- // Check for empty set.
- if len(kvs) == 0 {
- return empty(), nil
- }
-
- // Stable sort so the following de-duplication can implement
- // last-value-wins semantics.
- slices.SortStableFunc(kvs, func(a, b KeyValue) int {
- return cmp.Compare(a.Key, b.Key)
- })
-
- position := len(kvs) - 1
- offset := position - 1
-
- // The requirements stated above require that the stable
- // result be placed in the end of the input slice, while
- // overwritten values are swapped to the beginning.
- //
- // De-duplicate with last-value-wins semantics. Preserve
- // duplicate values at the beginning of the input slice.
- for ; offset >= 0; offset-- {
- if kvs[offset].Key == kvs[position].Key {
- continue
- }
- position--
- kvs[offset], kvs[position] = kvs[position], kvs[offset]
- }
- kvs = kvs[position:]
-
- if filter != nil {
- if div := filteredToFront(kvs, filter); div != 0 {
- return Set{equivalent: computeDistinct(kvs[div:])}, kvs[:div]
- }
- }
- return Set{equivalent: computeDistinct(kvs)}, nil
-}
-
-// NewSetWithSortableFiltered returns a new Set.
-//
-// Duplicate keys are eliminated by taking the last value. This
-// re-orders the input slice so that unique last-values are contiguous
-// at the end of the slice.
-//
-// This ensures the following:
-//
-// - Last-value-wins semantics
-// - Caller sees the reordering, but doesn't lose values
-// - Repeated call preserve last-value wins.
-//
-// Note that methods are defined on Set, although this returns Set. Callers
-// can avoid memory allocations by:
-//
-// - allocating a Sortable for use as a temporary in this method
-// - allocating a Set for storing the return value of this constructor.
-//
-// The result maintains a cache of encoded attributes, by attribute.EncoderID.
-// This value should not be copied after its first use.
-//
-// The second []KeyValue return value is a list of attributes that were
-// excluded by the Filter (if non-nil).
-//
-// Deprecated: Use [NewSetWithFiltered] instead.
-func NewSetWithSortableFiltered(kvs []KeyValue, _ *Sortable, filter Filter) (Set, []KeyValue) {
- return NewSetWithFiltered(kvs, filter)
-}
-
-// filteredToFront filters slice in-place using keep function. All KeyValues that need to
-// be removed are moved to the front. All KeyValues that need to be kept are
-// moved (in-order) to the back. The index for the first KeyValue to be kept is
-// returned.
-func filteredToFront(slice []KeyValue, keep Filter) int {
- n := len(slice)
- j := n
- for i := n - 1; i >= 0; i-- {
- if keep(slice[i]) {
- j--
- slice[i], slice[j] = slice[j], slice[i]
- }
- }
- return j
-}
-
-// Filter returns a filtered copy of this Set. See the documentation for
-// NewSetWithSortableFiltered for more details.
-func (l *Set) Filter(re Filter) (Set, []KeyValue) {
- if re == nil {
- return *l, nil
- }
-
- // Iterate in reverse to the first attribute that will be filtered out.
- n := l.Len()
- first := n - 1
- for ; first >= 0; first-- {
- kv, _ := l.Get(first)
- if !re(kv) {
- break
- }
- }
-
- // No attributes will be dropped, return the immutable Set l and nil.
- if first < 0 {
- return *l, nil
- }
-
- // Copy now that we know we need to return a modified set.
- //
- // Do not do this in-place on the underlying storage of *Set l. Sets are
- // immutable and filtering should not change this.
- slice := l.ToSlice()
-
- // Don't re-iterate the slice if only slice[0] is filtered.
- if first == 0 {
- // It is safe to assume len(slice) >= 1 given we found at least one
- // attribute above that needs to be filtered out.
- return Set{equivalent: computeDistinct(slice[1:])}, slice[:1]
- }
-
- // Move the filtered slice[first] to the front (preserving order).
- kv := slice[first]
- copy(slice[1:first+1], slice[:first])
- slice[0] = kv
-
- // Do not re-evaluate re(slice[first+1:]).
- div := filteredToFront(slice[1:first+1], re) + 1
- return Set{equivalent: computeDistinct(slice[div:])}, slice[:div]
-}
-
-// computeDistinct returns a Distinct using either the fixed- or
-// reflect-oriented code path, depending on the size of the input. The input
-// slice is assumed to already be sorted and de-duplicated.
-func computeDistinct(kvs []KeyValue) Distinct {
- iface := computeDistinctFixed(kvs)
- if iface == nil {
- iface = computeDistinctReflect(kvs)
- }
- return Distinct{
- iface: iface,
- }
-}
-
-// computeDistinctFixed computes a Distinct for small slices. It returns nil
-// if the input is too large for this code path.
-func computeDistinctFixed(kvs []KeyValue) any {
- switch len(kvs) {
- case 1:
- return [1]KeyValue(kvs)
- case 2:
- return [2]KeyValue(kvs)
- case 3:
- return [3]KeyValue(kvs)
- case 4:
- return [4]KeyValue(kvs)
- case 5:
- return [5]KeyValue(kvs)
- case 6:
- return [6]KeyValue(kvs)
- case 7:
- return [7]KeyValue(kvs)
- case 8:
- return [8]KeyValue(kvs)
- case 9:
- return [9]KeyValue(kvs)
- case 10:
- return [10]KeyValue(kvs)
- default:
- return nil
- }
-}
-
-// computeDistinctReflect computes a Distinct using reflection, works for any
-// size input.
-func computeDistinctReflect(kvs []KeyValue) any {
- at := reflect.New(reflect.ArrayOf(len(kvs), keyValueType)).Elem()
- for i, keyValue := range kvs {
- *(at.Index(i).Addr().Interface().(*KeyValue)) = keyValue
- }
- return at.Interface()
-}
-
-// MarshalJSON returns the JSON encoding of the Set.
-func (l *Set) MarshalJSON() ([]byte, error) {
- return json.Marshal(l.equivalent.iface)
-}
-
-// MarshalLog is the marshaling function used by the logging system to represent this Set.
-func (l Set) MarshalLog() any {
- kvs := make(map[string]string)
- for _, kv := range l.ToSlice() {
- kvs[string(kv.Key)] = kv.Value.Emit()
- }
- return kvs
-}
-
-// Len implements sort.Interface.
-func (l *Sortable) Len() int {
- return len(*l)
-}
-
-// Swap implements sort.Interface.
-func (l *Sortable) Swap(i, j int) {
- (*l)[i], (*l)[j] = (*l)[j], (*l)[i]
-}
-
-// Less implements sort.Interface.
-func (l *Sortable) Less(i, j int) bool {
- return (*l)[i].Key < (*l)[j].Key
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/type_string.go b/vendor/go.opentelemetry.io/otel/attribute/type_string.go
deleted file mode 100644
index e584b2477..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/type_string.go
+++ /dev/null
@@ -1,31 +0,0 @@
-// Code generated by "stringer -type=Type"; DO NOT EDIT.
-
-package attribute
-
-import "strconv"
-
-func _() {
- // An "invalid array index" compiler error signifies that the constant values have changed.
- // Re-run the stringer command to generate them again.
- var x [1]struct{}
- _ = x[INVALID-0]
- _ = x[BOOL-1]
- _ = x[INT64-2]
- _ = x[FLOAT64-3]
- _ = x[STRING-4]
- _ = x[BOOLSLICE-5]
- _ = x[INT64SLICE-6]
- _ = x[FLOAT64SLICE-7]
- _ = x[STRINGSLICE-8]
-}
-
-const _Type_name = "INVALIDBOOLINT64FLOAT64STRINGBOOLSLICEINT64SLICEFLOAT64SLICESTRINGSLICE"
-
-var _Type_index = [...]uint8{0, 7, 11, 16, 23, 29, 38, 48, 60, 71}
-
-func (i Type) String() string {
- if i < 0 || i >= Type(len(_Type_index)-1) {
- return "Type(" + strconv.FormatInt(int64(i), 10) + ")"
- }
- return _Type_name[_Type_index[i]:_Type_index[i+1]]
-}
diff --git a/vendor/go.opentelemetry.io/otel/attribute/value.go b/vendor/go.opentelemetry.io/otel/attribute/value.go
deleted file mode 100644
index 653c33a86..000000000
--- a/vendor/go.opentelemetry.io/otel/attribute/value.go
+++ /dev/null
@@ -1,270 +0,0 @@
-// Copyright The OpenTelemetry Authors
-// SPDX-License-Identifier: Apache-2.0
-
-package attribute // import "go.opentelemetry.io/otel/attribute"
-
-import (
- "encoding/json"
- "fmt"
- "reflect"
- "strconv"
-
- attribute "go.opentelemetry.io/otel/attribute/internal"
-)
-
-//go:generate stringer -type=Type
-
-// Type describes the type of the data Value holds.
-type Type int // nolint: revive // redefines builtin Type.
-
-// Value represents the value part in key-value pairs.
-type Value struct {
- vtype Type
- numeric uint64
- stringly string
- slice any
-}
-
-const (
- // INVALID is used for a Value with no value set.
- INVALID Type = iota
- // BOOL is a boolean Type Value.
- BOOL
- // INT64 is a 64-bit signed integral Type Value.
- INT64
- // FLOAT64 is a 64-bit floating point Type Value.
- FLOAT64
- // STRING is a string Type Value.
- STRING
- // BOOLSLICE is a slice of booleans Type Value.
- BOOLSLICE
- // INT64SLICE is a slice of 64-bit signed integral numbers Type Value.
- INT64SLICE
- // FLOAT64SLICE is a slice of 64-bit floating point numbers Type Value.
- FLOAT64SLICE
- // STRINGSLICE is a slice of strings Type Value.
- STRINGSLICE
-)
-
-// BoolValue creates a BOOL Value.
-func BoolValue(v bool) Value {
- return Value{
- vtype: BOOL,
- numeric: boolToRaw(v),
- }
-}
-
-// BoolSliceValue creates a BOOLSLICE Value.
-func BoolSliceValue(v []bool) Value {
- return Value{vtype: BOOLSLICE, slice: attribute.BoolSliceValue(v)}
-}
-
-// IntValue creates an INT64 Value.
-func IntValue(v int) Value {
- return Int64Value(int64(v))
-}
-
-// IntSliceValue creates an INTSLICE Value.
-func IntSliceValue(v []int) Value {
- var int64Val int64
- cp := reflect.New(reflect.ArrayOf(len(v), reflect.TypeOf(int64Val)))
- for i, val := range v {
- cp.Elem().Index(i).SetInt(int64(val))
- }
- return Value{
- vtype: INT64SLICE,
- slice: cp.Elem().Interface(),
- }
-}
-
-// Int64Value creates an INT64 Value.
-func Int64Value(v int64) Value {
- return Value{
- vtype: INT64,
- numeric: int64ToRaw(v),
- }
-}
-
-// Int64SliceValue creates an INT64SLICE Value.
-func Int64SliceValue(v []int64) Value {
- return Value{vtype: INT64SLICE, slice: attribute.Int64SliceValue(v)}
-}
-
-// Float64Value creates a FLOAT64 Value.
-func Float64Value(v float64) Value {
- return Value{
- vtype: FLOAT64,
- numeric: float64ToRaw(v),
- }
-}
-
-// Float64SliceValue creates a FLOAT64SLICE Value.
-func Float64SliceValue(v []float64) Value {
- return Value{vtype: FLOAT64SLICE, slice: attribute.Float64SliceValue(v)}
-}
-
-// StringValue creates a STRING Value.
-func StringValue(v string) Value {
- return Value{
- vtype: STRING,
- stringly: v,
- }
-}
-
-// StringSliceValue creates a STRINGSLICE Value.
-func StringSliceValue(v []string) Value {
- return Value{vtype: STRINGSLICE, slice: attribute.StringSliceValue(v)}
-}
-
-// Type returns a type of the Value.
-func (v Value) Type() Type {
- return v.vtype
-}
-
-// AsBool returns the bool value. Make sure that the Value's type is
-// BOOL.
-func (v Value) AsBool() bool {
- return rawToBool(v.numeric)
-}
-
-// AsBoolSlice returns the []bool value. Make sure that the Value's type is
-// BOOLSLICE.
-func (v Value) AsBoolSlice() []bool {
- if v.vtype != BOOLSLICE {
- return nil
- }
- return v.asBoolSlice()
-}
-
-func (v Value) asBoolSlice() []bool {
- return attribute.AsBoolSlice(v.slice)
-}
-
-// AsInt64 returns the int64 value. Make sure that the Value's type is
-// INT64.
-func (v Value) AsInt64() int64 {
- return rawToInt64(v.numeric)
-}
-
-// AsInt64Slice returns the []int64 value. Make sure that the Value's type is
-// INT64SLICE.
-func (v Value) AsInt64Slice() []int64 {
- if v.vtype != INT64SLICE {
- return nil
- }
- return v.asInt64Slice()
-}
-
-func (v Value) asInt64Slice() []int64 {
- return attribute.AsInt64Slice(v.slice)
-}
-
-// AsFloat64 returns the float64 value. Make sure that the Value's
-// type is FLOAT64.
-func (v Value) AsFloat64() float64 {
- return rawToFloat64(v.numeric)
-}
-
-// AsFloat64Slice returns the []float64 value. Make sure that the Value's type is
-// FLOAT64SLICE.
-func (v Value) AsFloat64Slice() []float64 {
- if v.vtype != FLOAT64SLICE {
- return nil
- }
- return v.asFloat64Slice()
-}
-
-func (v Value) asFloat64Slice() []float64 {
- return attribute.AsFloat64Slice(v.slice)
-}
-
-// AsString returns the string value. Make sure that the Value's type
-// is STRING.
-func (v Value) AsString() string {
- return v.stringly
-}
-
-// AsStringSlice returns the []string value. Make sure that the Value's type is
-// STRINGSLICE.
-func (v Value) AsStringSlice() []string {
- if v.vtype != STRINGSLICE {
- return nil
- }
- return v.asStringSlice()
-}
-
-func (v Value) asStringSlice() []string {
- return attribute.AsStringSlice(v.slice)
-}
-
-type unknownValueType struct{}
-
-// AsInterface returns Value's data as any.
-func (v Value) AsInterface() any {
- switch v.Type() {
- case BOOL:
- return v.AsBool()
- case BOOLSLICE:
- return v.asBoolSlice()
- case INT64:
- return v.AsInt64()
- case INT64SLICE:
- return v.asInt64Slice()
- case FLOAT64:
- return v.AsFloat64()
- case FLOAT64SLICE:
- return v.asFloat64Slice()
- case STRING:
- return v.stringly
- case STRINGSLICE:
- return v.asStringSlice()
- }
- return unknownValueType{}
-}
-
-// Emit returns a string representation of Value's data.
-func (v Value) Emit() string {
- switch v.Type() {
- case BOOLSLICE:
- return fmt.Sprint(v.asBoolSlice())
- case BOOL:
- return strconv.FormatBool(v.AsBool())
- case INT64SLICE:
- j, err := json.Marshal(v.asInt64Slice())
- if err != nil {
- return fmt.Sprintf("invalid: %v", v.asInt64Slice())
- }
- return string(j)
- case INT64:
- return strconv.FormatInt(v.AsInt64(), 10)
- case FLOAT64SLICE:
- j, err := json.Marshal(v.asFloat64Slice())
- if err != nil {
- return fmt.Sprintf("invalid: %v", v.asFloat64Slice())
- }
- return string(j)
- case FLOAT64:
- return fmt.Sprint(v.AsFloat64())
- case STRINGSLICE:
- j, err := json.Marshal(v.asStringSlice())
- if err != nil {
- return fmt.Sprintf("invalid: %v", v.asStringSlice())
- }
- return string(j)
- case STRING:
- return v.stringly
- default:
- return "unknown"
- }
-}
-
-// MarshalJSON returns the JSON encoding of the Value.
-func (v Value) MarshalJSON() ([]byte, error) {
- var jsonVal struct {
- Type string
- Value any
- }
- jsonVal.Type = v.Type().String()
- jsonVal.Value = v.AsInterface()
- return json.Marshal(jsonVal)
-}