mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
Address comments: re-use code, grow buffer, add comments
This commit is contained in:
parent
ce868cb751
commit
5b310565fa
@ -970,6 +970,8 @@ func ParseToRequirements(selector string, opts ...field.PathOption) ([]Requireme
|
|||||||
// Set.AsSelectorPreValidated (which copies the input Set), this type simply wraps the underlying
|
// Set.AsSelectorPreValidated (which copies the input Set), this type simply wraps the underlying
|
||||||
// Set. As a result, it is substantially more efficient, but requires the caller to not mutate the
|
// Set. As a result, it is substantially more efficient, but requires the caller to not mutate the
|
||||||
// Set.
|
// Set.
|
||||||
|
// None of the Selector methods mutate the underlying Set, but Add() and Requirements() convert to the
|
||||||
|
// less optimized version.
|
||||||
type SetSelector Set
|
type SetSelector Set
|
||||||
|
|
||||||
func (s SetSelector) Matches(labels Labels) bool {
|
func (s SetSelector) Matches(labels Labels) bool {
|
||||||
@ -994,14 +996,14 @@ func (s SetSelector) String() string {
|
|||||||
sort.Strings(keys)
|
sort.Strings(keys)
|
||||||
b := strings.Builder{}
|
b := strings.Builder{}
|
||||||
for i, key := range keys {
|
for i, key := range keys {
|
||||||
last := i == len(keys)-1
|
|
||||||
v := s[key]
|
v := s[key]
|
||||||
|
b.Grow(len(key) + 2 + len(v))
|
||||||
|
if i != 0 {
|
||||||
|
b.WriteString(",")
|
||||||
|
}
|
||||||
b.WriteString(key)
|
b.WriteString(key)
|
||||||
b.WriteString("=")
|
b.WriteString("=")
|
||||||
b.WriteString(v)
|
b.WriteString(v)
|
||||||
if !last {
|
|
||||||
b.WriteString(",")
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return b.String()
|
return b.String()
|
||||||
}
|
}
|
||||||
@ -1028,16 +1030,7 @@ func (s SetSelector) RequiresExactMatch(label string) (value string, found bool)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s SetSelector) toFullSelector() Selector {
|
func (s SetSelector) toFullSelector() Selector {
|
||||||
if s == nil || len(s) == 0 {
|
return SelectorFromValidatedSet(Set(s))
|
||||||
return internalSelector{}
|
|
||||||
}
|
|
||||||
requirements := make([]Requirement, 0, len(s))
|
|
||||||
for label, value := range s {
|
|
||||||
requirements = append(requirements, Requirement{key: label, operator: selection.Equals, strValues: []string{value}})
|
|
||||||
}
|
|
||||||
// sort to have deterministic string representation
|
|
||||||
sort.Sort(ByKey(requirements))
|
|
||||||
return internalSelector(requirements)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ Selector = SetSelector{}
|
var _ Selector = SetSelector{}
|
||||||
|
Loading…
Reference in New Issue
Block a user