label

package
v0.0.0-...-3c20124 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 28, 2023 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Key

type Key interface {
	// Name returns the key name.
	Name() string
	// Description returns a string that can be used to describe the value.
	Description() string

	// Format is used in formatting to append the value of the label to the
	// supplied buffer.
	// The formatter may use the supplied buf as a scratch area to avoid
	// allocations.
	Format(w io.Writer, buf []byte, l Label)
}

Key is used as the identity of a Label. Keys are intended to be compared by pointer only, the name should be unique for communicating with external systems, but it is not required or enforced.

type Label

type Label struct {
	// contains filtered or unexported fields
}

Label holds a key and value pair. It is normally used when passing around lists of labels.

func Of64

func Of64(k Key, v uint64) Label

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 OfString

func OfString(k Key, v string) Label

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 OfValue

func OfValue(k Key, value interface{}) Label

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 (Label) Format

func (t Label) Format(f fmt.State, r rune)

Format is used for debug printing of labels.

func (Label) Key

func (t Label) Key() Key

Key returns the key of this Label.

func (Label) Unpack64

func (t Label) Unpack64() uint64

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 (Label) UnpackString

func (t Label) UnpackString() string

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 (Label) UnpackValue

func (t Label) UnpackValue() 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 (Label) Valid

func (t Label) Valid() bool

Valid returns true if the Label is a valid one (it has a key).

type List

type List interface {
	// Valid returns true if the index is within range for the list.
	// It does not imply the label at that index will itself be valid.
	Valid(index int) bool
	// Label returns the label at the given index.
	Label(index int) Label
}

List is the interface to something that provides an iterable list of labels. Iteration should start from 0 and continue until Valid returns false.

func Filter

func Filter(l List, keys ...Key) List

func NewList

func NewList(labels ...Label) List

type Map

type Map interface {
	// Find returns the label that matches the supplied key.
	Find(key Key) Label
}

Map is the interface to a collection of Labels indexed by key.

func MergeMaps

func MergeMaps(srcs ...Map) Map

func NewMap

func NewMap(labels ...Label) Map

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL