Source File
map.go
Belonging Package
go.opencensus.io/tag
package tag
import (
)
type Map struct {
m map[Key]tagContent
}
func ( *Map) ( Key) (string, bool) {
if == nil {
return "", false
}
, := .m[]
return .value,
}
func ( *Map) () string {
if == nil {
return "nil"
}
:= make([]Key, 0, len(.m))
for := range .m {
= append(, )
}
sort.Slice(, func(, int) bool { return [].Name() < [].Name() })
var bytes.Buffer
.WriteString("{ ")
for , := range {
.WriteString(fmt.Sprintf("{%v %v}", .name, .m[]))
}
.WriteString(" }")
return .String()
}
func ( *Map) ( Key, string, metadatas) {
if , := .m[]; {
return
}
.m[] = tagContent{value: , m: }
}
func ( *Map) ( Key, string, metadatas) {
if , := .m[]; {
.m[] = tagContent{value: , m: }
}
}
func ( *Map) ( Key, string, metadatas) {
.m[] = tagContent{value: , m: }
}
func ( *Map) ( Key) {
delete(.m, )
}
func () *Map {
return &Map{m: make(map[Key]tagContent)}
}
func ( Key, string, ...Metadata) Mutator {
return &mutator{
fn: func( *Map) (*Map, error) {
if !checkValue() {
return nil, errInvalidValue
}
.insert(, , createMetadatas(...))
return , nil
},
}
}
func ( Key, string, ...Metadata) Mutator {
return &mutator{
fn: func( *Map) (*Map, error) {
if !checkValue() {
return nil, errInvalidValue
}
.update(, , createMetadatas(...))
return , nil
},
}
}
func ( Key, string, ...Metadata) Mutator {
return &mutator{
fn: func( *Map) (*Map, error) {
if !checkValue() {
return nil, errInvalidValue
}
.upsert(, , createMetadatas(...))
return , nil
},
}
}
func ( ...Metadata) metadatas {
var metadatas
if len() > 0 {
for , := range {
if != nil {
(&)
}
}
} else {
WithTTL(TTLUnlimitedPropagation)(&)
}
return
}
func ( context.Context, ...Mutator) (context.Context, error) {
:= newMap()
:= FromContext()
if != nil {
for , := range .m {
if !checkKeyName(.Name()) {
return , fmt.Errorf("key:%q: %v", , errInvalidKeyName)
}
if !checkValue(.value) {
return , fmt.Errorf("key:%q value:%q: %v", .Name(), , errInvalidValue)
}
.insert(, .value, .m)
}
}
var error
for , := range {
, = .Mutate()
if != nil {
return ,
}
}
return NewContext(, ), nil
}
![]() |
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. |