type Key … type Label … type Map … type List … type list … type filter … type listMap … type mapChain … // OfValue creates a new label from the key and value. // This method is for implementing new key types, label creation should // normally be done with the Of method of the key. func OfValue(k Key, value interface{ … } // UnpackValue assumes the label was built using LabelOfValue and returns the value // that was passed to that constructor. // This method is for implementing new key types, for type safety normal // access should be done with the From method of the key. func (t Label) UnpackValue() interface{ … } // Of64 creates a new label from a key and a uint64. This is often // used for non uint64 values that can be packed into a uint64. // This method is for implementing new key types, label creation should // normally be done with the Of method of the key. func Of64(k Key, v uint64) Label { … } // Unpack64 assumes the label was built using LabelOf64 and returns the value that // was passed to that constructor. // This method is for implementing new key types, for type safety normal // access should be done with the From method of the key. func (t Label) Unpack64() uint64 { … } type stringptr … // OfString creates a new label from a key and a string. // This method is for implementing new key types, label creation should // normally be done with the Of method of the key. func OfString(k Key, v string) Label { … } // UnpackString assumes the label was built using LabelOfString and returns the // value that was passed to that constructor. // This method is for implementing new key types, for type safety normal // access should be done with the From method of the key. func (t Label) UnpackString() string { … } // Valid returns true if the Label is a valid one (it has a key). func (t Label) Valid() bool { … } // Key returns the key of this Label. func (t Label) Key() Key { … } // Format is used for debug printing of labels. func (t Label) Format(f fmt.State, r rune) { … } func (l *list) Valid(index int) bool { … } func (l *list) Label(index int) Label { … } func (f *filter) Valid(index int) bool { … } func (f *filter) Label(index int) Label { … } func (lm listMap) Find(key Key) Label { … } func (c mapChain) Find(key Key) Label { … } var emptyList … func NewList(labels ...Label) List { … } func Filter(l List, keys ...Key) List { … } func NewMap(labels ...Label) Map { … } func MergeMaps(srcs ...Map) Map { … }