1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3 4 /*
5 Package baggage provides base types and functionality to store and retrieve
6 baggage in Go context. This package exists because the OpenTracing bridge to
7 OpenTelemetry needs to synchronize state whenever baggage for a context is
8 modified and that context contains an OpenTracing span. If it were not for
9 this need this package would not need to exist and the
10 `go.opentelemetry.io/otel/baggage` package would be the singular place where
11 W3C baggage is handled.
12 */
13 package baggage // import "go.opentelemetry.io/otel/internal/baggage"
14 15 // List is the collection of baggage members. The W3C allows for duplicates,
16 // but OpenTelemetry does not, therefore, this is represented as a map.
17 type List map[string]Item
18 19 // Item is the value and metadata properties part of a list-member.
20 type Item struct {
21 Value string
22 Properties []Property
23 }
24 25 // Property is a metadata entry for a list-member.
26 type Property struct {
27 Key, Value string
28 29 // HasValue indicates if a zero-value value means the property does not
30 // have a value or if it was the zero-value.
31 HasValue bool
32 }
33