mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-04 23:17:50 +00:00
Move util.StringSet into its own package
A lot of packages use StringSet, but they don't use anything else from the util package. Moving StringSet into another package will shrink their dependency trees significantly.
This commit is contained in:
@@ -24,6 +24,7 @@ import (
|
||||
|
||||
"k8s.io/kubernetes/pkg/util"
|
||||
"k8s.io/kubernetes/pkg/util/fielderrors"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
// Selector represents a label selector.
|
||||
@@ -79,7 +80,7 @@ func (a ByKey) Less(i, j int) bool { return a[i].key < a[j].key }
|
||||
type Requirement struct {
|
||||
key string
|
||||
operator Operator
|
||||
strValues util.StringSet
|
||||
strValues sets.String
|
||||
}
|
||||
|
||||
// NewRequirement is the constructor for a Requirement.
|
||||
@@ -91,7 +92,7 @@ type Requirement struct {
|
||||
// of characters. See validateLabelKey for more details.
|
||||
//
|
||||
// The empty string is a valid value in the input values set.
|
||||
func NewRequirement(key string, op Operator, vals util.StringSet) (*Requirement, error) {
|
||||
func NewRequirement(key string, op Operator, vals sets.String) (*Requirement, error) {
|
||||
if err := validateLabelKey(key); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -198,7 +199,7 @@ func (lsel LabelSelector) Add(key string, operator Operator, values []string) Se
|
||||
for _, item := range lsel {
|
||||
reqs = append(reqs, item)
|
||||
}
|
||||
if r, err := NewRequirement(key, operator, util.NewStringSet(values...)); err == nil {
|
||||
if r, err := NewRequirement(key, operator, sets.NewString(values...)); err == nil {
|
||||
reqs = append(reqs, *r)
|
||||
}
|
||||
return LabelSelector(reqs)
|
||||
@@ -480,7 +481,7 @@ func (p *Parser) parseRequirement() (*Requirement, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var values util.StringSet
|
||||
var values sets.String
|
||||
switch operator {
|
||||
case InOperator, NotInOperator:
|
||||
values, err = p.parseValues()
|
||||
@@ -535,7 +536,7 @@ func (p *Parser) parseOperator() (op Operator, err error) {
|
||||
}
|
||||
|
||||
// parseValues parses the values for set based matching (x,y,z)
|
||||
func (p *Parser) parseValues() (util.StringSet, error) {
|
||||
func (p *Parser) parseValues() (sets.String, error) {
|
||||
tok, lit := p.consume(Values)
|
||||
if tok != OpenParToken {
|
||||
return nil, fmt.Errorf("found '%s' expected: '('", lit)
|
||||
@@ -553,7 +554,7 @@ func (p *Parser) parseValues() (util.StringSet, error) {
|
||||
return s, nil
|
||||
case ClosedParToken: // handles "()"
|
||||
p.consume(Values)
|
||||
return util.NewStringSet(""), nil
|
||||
return sets.NewString(""), nil
|
||||
default:
|
||||
return nil, fmt.Errorf("found '%s', expected: ',', ')' or identifier", lit)
|
||||
}
|
||||
@@ -561,8 +562,8 @@ func (p *Parser) parseValues() (util.StringSet, error) {
|
||||
|
||||
// parseIdentifiersList parses a (possibly empty) list of
|
||||
// of comma separated (possibly empty) identifiers
|
||||
func (p *Parser) parseIdentifiersList() (util.StringSet, error) {
|
||||
s := util.NewStringSet()
|
||||
func (p *Parser) parseIdentifiersList() (sets.String, error) {
|
||||
s := sets.NewString()
|
||||
for {
|
||||
tok, lit := p.consume(Values)
|
||||
switch tok {
|
||||
@@ -597,8 +598,8 @@ func (p *Parser) parseIdentifiersList() (util.StringSet, error) {
|
||||
}
|
||||
|
||||
// parseExactValue parses the only value for exact match style
|
||||
func (p *Parser) parseExactValue() (util.StringSet, error) {
|
||||
s := util.NewStringSet()
|
||||
func (p *Parser) parseExactValue() (sets.String, error) {
|
||||
s := sets.NewString()
|
||||
tok, lit := p.consume(Values)
|
||||
if tok == IdentifierToken {
|
||||
s.Insert(lit)
|
||||
@@ -670,7 +671,7 @@ func SelectorFromSet(ls Set) Selector {
|
||||
}
|
||||
var requirements []Requirement
|
||||
for label, value := range ls {
|
||||
if r, err := NewRequirement(label, EqualsOperator, util.NewStringSet(value)); err != nil {
|
||||
if r, err := NewRequirement(label, EqualsOperator, sets.NewString(value)); err != nil {
|
||||
//TODO: double check errors when input comes from serialization?
|
||||
return LabelSelector{}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user