mirror of
https://github.com/pomerium/pomerium.git
synced 2025-04-29 10:26:29 +02:00
32 lines
594 B
Go
32 lines
594 B
Go
package trace
|
|
|
|
import (
|
|
"unique"
|
|
|
|
oteltrace "go.opentelemetry.io/otel/trace"
|
|
)
|
|
|
|
var (
|
|
zeroSpanID oteltrace.SpanID
|
|
zeroTraceID = unique.Make(oteltrace.TraceID([16]byte{}))
|
|
)
|
|
|
|
func ToSpanID(bytes []byte) (oteltrace.SpanID, bool) {
|
|
switch len(bytes) {
|
|
case 0:
|
|
return zeroSpanID, true
|
|
case 8:
|
|
return oteltrace.SpanID(bytes), true
|
|
}
|
|
return zeroSpanID, false
|
|
}
|
|
|
|
func ToTraceID(bytes []byte) (unique.Handle[oteltrace.TraceID], bool) {
|
|
switch len(bytes) {
|
|
case 0:
|
|
return zeroTraceID, true
|
|
case 16:
|
|
return unique.Make(oteltrace.TraceID(bytes)), true
|
|
}
|
|
return zeroTraceID, false
|
|
}
|