Source File
encoder.go
Belonging Package
go.opentelemetry.io/otel/label
package label
import (
)
ID() EncoderID
}
const escapeChar = '\\'
var (
_ Encoder = &defaultLabelEncoder{}
func () Encoder {
defaultEncoderOnce.Do(func() {
defaultEncoderInstance = &defaultLabelEncoder{
pool: sync.Pool{
New: func() interface{} {
return &bytes.Buffer{}
},
},
}
})
return defaultEncoderInstance
}
func ( *defaultLabelEncoder) ( Iterator) string {
:= .pool.Get().(*bytes.Buffer)
defer .pool.Put()
.Reset()
for .Next() {
, := .IndexedLabel()
if > 0 {
_, _ = .WriteRune(',')
}
copyAndEscape(, string(.Key))
_, _ = .WriteRune('=')
if .Value.Type() == STRING {
copyAndEscape(, .Value.AsString())
} else {
_, _ = .WriteString(.Value.Emit())
}
}
return .String()
}
func (*defaultLabelEncoder) () EncoderID {
return defaultEncoderID
}
func ( *bytes.Buffer, string) {
for , := range {
switch {
case '=', ',', escapeChar:
.WriteRune(escapeChar)
}
.WriteRune()
}
}
![]() |
The pages are generated with Golds v0.3.2-preview. (GOOS=darwin GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |