blob: b4f85f44a93e48c6ef50ad07de86e096f2ecb374 [file] [log] [blame]
Joey Armstrong5f51f2e2023-01-17 17:06:26 -05001// Copyright The OpenTelemetry Authors
Abhay Kumara2ae5992025-11-10 14:02:24 +00002// SPDX-License-Identifier: Apache-2.0
Joey Armstrong5f51f2e2023-01-17 17:06:26 -05003
Abhay Kumara2ae5992025-11-10 14:02:24 +00004/*
5Package baggage provides base types and functionality to store and retrieve
6baggage in Go context. This package exists because the OpenTracing bridge to
7OpenTelemetry needs to synchronize state whenever baggage for a context is
8modified and that context contains an OpenTracing span. If it were not for
9this need this package would not need to exist and the
10`go.opentelemetry.io/otel/baggage` package would be the singular place where
11W3C baggage is handled.
12*/
13package baggage // import "go.opentelemetry.io/otel/internal/baggage"
Joey Armstrong5f51f2e2023-01-17 17:06:26 -050014
Abhay Kumara2ae5992025-11-10 14:02:24 +000015// List is the collection of baggage members. The W3C allows for duplicates,
16// but OpenTelemetry does not, therefore, this is represented as a map.
17type List map[string]Item
Joey Armstrong5f51f2e2023-01-17 17:06:26 -050018
Abhay Kumara2ae5992025-11-10 14:02:24 +000019// Item is the value and metadata properties part of a list-member.
20type Item struct {
21 Value string
22 Properties []Property
Joey Armstrong5f51f2e2023-01-17 17:06:26 -050023}
24
Abhay Kumara2ae5992025-11-10 14:02:24 +000025// Property is a metadata entry for a list-member.
26type Property struct {
27 Key, Value string
Joey Armstrong5f51f2e2023-01-17 17:06:26 -050028
Abhay Kumara2ae5992025-11-10 14:02:24 +000029 // 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
Joey Armstrong5f51f2e2023-01-17 17:06:26 -050032}