type label … type LabelSet … type labelContextKey … func labelValue(ctx context.Context) labelMap { … } type labelMap … // String satisfies Stringer and returns key, value pairs in a consistent // order. func (l *labelMap) String() string { … } // WithLabels returns a new [context.Context] with the given labels added. // A label overwrites a prior label with the same key. func WithLabels(ctx context.Context, labels LabelSet) context.Context { … } // Labels takes an even number of strings representing key-value pairs // and makes a [LabelSet] containing them. // A label overwrites a prior label with the same key. // Currently only the CPU and goroutine profiles utilize any labels // information. // See https://golang.org/issue/23458 for details. func Labels(args ...string) LabelSet { … } // Label returns the value of the label with the given key on ctx, and a boolean indicating // whether that label exists. func Label(ctx context.Context, key string) (string, bool) { … } // ForLabels invokes f with each label set on the context. // The function f should return true to continue iteration or false to stop iteration early. func ForLabels(ctx context.Context, f func(key, value string) bool) { … }