parser

package
v0.0.0-...-8f3027a Latest Latest
Warning

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

Go to latest
Published: Nov 27, 2024 License: Apache-2.0, Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AllNode

type AllNode struct {
}

func (*AllNode) AcceptVisitor

func (node *AllNode) AcceptVisitor(v Visitor)

func (*AllNode) Evaluate

func (node *AllNode) Evaluate(labels Labels) bool

func (*AllNode) LabelRestrictions

func (node *AllNode) LabelRestrictions() map[string]LabelRestriction

type AndNode

type AndNode struct {
	Operands []node
}

func (*AndNode) AcceptVisitor

func (node *AndNode) AcceptVisitor(v Visitor)

func (*AndNode) Evaluate

func (node *AndNode) Evaluate(labels Labels) bool

func (*AndNode) LabelRestrictions

func (node *AndNode) LabelRestrictions() map[string]LabelRestriction

type GlobalNode

type GlobalNode struct {
}

func (*GlobalNode) AcceptVisitor

func (node *GlobalNode) AcceptVisitor(v Visitor)

func (*GlobalNode) Evaluate

func (node *GlobalNode) Evaluate(labels Labels) bool

func (*GlobalNode) LabelRestrictions

func (node *GlobalNode) LabelRestrictions() map[string]LabelRestriction

type HasNode

type HasNode struct {
	LabelName string
}

func (*HasNode) AcceptVisitor

func (node *HasNode) AcceptVisitor(v Visitor)

func (*HasNode) Evaluate

func (node *HasNode) Evaluate(labels Labels) bool

func (*HasNode) LabelRestrictions

func (node *HasNode) LabelRestrictions() map[string]LabelRestriction

type LabelContainsValueNode

type LabelContainsValueNode struct {
	LabelName string
	Value     string
}

func (*LabelContainsValueNode) AcceptVisitor

func (node *LabelContainsValueNode) AcceptVisitor(v Visitor)

func (*LabelContainsValueNode) Evaluate

func (node *LabelContainsValueNode) Evaluate(labels Labels) bool

func (*LabelContainsValueNode) LabelRestrictions

func (node *LabelContainsValueNode) LabelRestrictions() map[string]LabelRestriction

type LabelEndsWithValueNode

type LabelEndsWithValueNode struct {
	LabelName string
	Value     string
}

func (*LabelEndsWithValueNode) AcceptVisitor

func (node *LabelEndsWithValueNode) AcceptVisitor(v Visitor)

func (*LabelEndsWithValueNode) Evaluate

func (node *LabelEndsWithValueNode) Evaluate(labels Labels) bool

func (*LabelEndsWithValueNode) LabelRestrictions

func (node *LabelEndsWithValueNode) LabelRestrictions() map[string]LabelRestriction

type LabelEqValueNode

type LabelEqValueNode struct {
	LabelName string
	Value     string
}

func (*LabelEqValueNode) AcceptVisitor

func (node *LabelEqValueNode) AcceptVisitor(v Visitor)

func (*LabelEqValueNode) Evaluate

func (node *LabelEqValueNode) Evaluate(labels Labels) bool

func (*LabelEqValueNode) LabelRestrictions

func (node *LabelEqValueNode) LabelRestrictions() map[string]LabelRestriction

type LabelInSetNode

type LabelInSetNode struct {
	LabelName string
	Value     StringSet
}

func (*LabelInSetNode) AcceptVisitor

func (node *LabelInSetNode) AcceptVisitor(v Visitor)

func (*LabelInSetNode) Evaluate

func (node *LabelInSetNode) Evaluate(labels Labels) bool

func (*LabelInSetNode) LabelRestrictions

func (node *LabelInSetNode) LabelRestrictions() map[string]LabelRestriction

type LabelNeValueNode

type LabelNeValueNode struct {
	LabelName string
	Value     string
}

func (*LabelNeValueNode) AcceptVisitor

func (node *LabelNeValueNode) AcceptVisitor(v Visitor)

func (*LabelNeValueNode) Evaluate

func (node *LabelNeValueNode) Evaluate(labels Labels) bool

func (*LabelNeValueNode) LabelRestrictions

func (node *LabelNeValueNode) LabelRestrictions() map[string]LabelRestriction

type LabelNotInSetNode

type LabelNotInSetNode struct {
	LabelName string
	Value     StringSet
}

func (*LabelNotInSetNode) AcceptVisitor

func (node *LabelNotInSetNode) AcceptVisitor(v Visitor)

func (*LabelNotInSetNode) Evaluate

func (node *LabelNotInSetNode) Evaluate(labels Labels) bool

func (*LabelNotInSetNode) LabelRestrictions

func (node *LabelNotInSetNode) LabelRestrictions() map[string]LabelRestriction

type LabelRestriction

type LabelRestriction struct {
	// MustBePresent is true if this label must be present for the selector to
	// match. For example "has(labelName)" or "labelName == 'foo'"
	MustBePresent bool
	// MustBeAbsent is true if this label must be absent for this selector to
	// match. For example "!has(labelName)".
	MustBeAbsent bool
	// MustHaveOneOfValues if non-nil, indicates that the label must have one
	// of the listed values in order to match the selector.
	//
	// If nil, no such restriction is known.  For example "has(labelName)"
	//
	// Note: non-nil empty slice means "selector cannot match anything". For
	// example an inconsistent selector such as: "a == 'B' && a == 'C'"
	MustHaveOneOfValues []string
}

func (LabelRestriction) PossibleToSatisfy

func (r LabelRestriction) PossibleToSatisfy() bool

type LabelStartsWithValueNode

type LabelStartsWithValueNode struct {
	LabelName string
	Value     string
}

func (*LabelStartsWithValueNode) AcceptVisitor

func (node *LabelStartsWithValueNode) AcceptVisitor(v Visitor)

func (*LabelStartsWithValueNode) Evaluate

func (node *LabelStartsWithValueNode) Evaluate(labels Labels) bool

func (*LabelStartsWithValueNode) LabelRestrictions

func (node *LabelStartsWithValueNode) LabelRestrictions() map[string]LabelRestriction

type Labels

type Labels interface {
	// Get returns value and presence of the given labelName
	Get(labelName string) (value string, present bool)
}

Labels defines the interface of labels that can be used by selector

type MapAsLabels

type MapAsLabels map[string]string

MapAsLabels allows you use map as labels

func (MapAsLabels) Get

func (l MapAsLabels) Get(labelName string) (value string, present bool)

Get returns the value and presence of the given labelName key in the MapAsLabels

type NotNode

type NotNode struct {
	Operand node
}

func (*NotNode) AcceptVisitor

func (node *NotNode) AcceptVisitor(v Visitor)

func (*NotNode) Evaluate

func (node *NotNode) Evaluate(labels Labels) bool

func (*NotNode) LabelRestrictions

func (node *NotNode) LabelRestrictions() map[string]LabelRestriction

type OrNode

type OrNode struct {
	Operands []node
}

func (*OrNode) AcceptVisitor

func (node *OrNode) AcceptVisitor(v Visitor)

func (*OrNode) Evaluate

func (node *OrNode) Evaluate(labels Labels) bool

func (*OrNode) LabelRestrictions

func (node *OrNode) LabelRestrictions() map[string]LabelRestriction

type PrefixVisitor

type PrefixVisitor struct {
	Prefix string
}

PrefixVisitor implements the Visitor interface to allow prefixing of label names within a selector.

func (PrefixVisitor) Visit

func (v PrefixVisitor) Visit(n interface{})

type Selector

type Selector interface {
	// Evaluate evaluates the selector against the given labels expressed as a concrete map.
	Evaluate(labels map[string]string) bool

	// EvaluateLabels evaluates the selector against the given labels expressed as an interface.
	// This allows for labels that are calculated on the fly.
	EvaluateLabels(labels Labels) bool

	// String returns a string that represents this selector.
	String() string

	// UniqueID returns the unique ID that represents this selector.
	UniqueID() string

	// AcceptVisitor allows an external visitor to modify this selector.
	AcceptVisitor(v Visitor)

	LabelRestrictions() map[string]LabelRestriction
}

Selector represents a label selector.

func Parse

func Parse(selector string) (sel Selector, err error)

Parse parses a string representation of a selector expression into a Selector.

type StringSet

type StringSet []string

func ConvertToStringSetInPlace

func ConvertToStringSetInPlace(s []string) StringSet

func (StringSet) Contains

func (ss StringSet) Contains(s string) bool

Contains returns true if a given string in current set

func (StringSet) SliceCopy

func (ss StringSet) SliceCopy() []string

SliceCopy returns a new slice that contains the elements of the set in sorted order.

type Visitor

type Visitor interface {
	Visit(n interface{})
}

Jump to

Keyboard shortcuts

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