mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-01 07:47:56 +00:00
In pkg/kubectl/describe.go function Matches support unordered types matches.
The argument of function need to be matched. It did not support unorder matches. This is a TODO and I fix it.(line 1763 in pkg/kubectl/describe.go) I use a map to solve it which could compare two types array's difference.
This commit is contained in:
parent
e99243fd12
commit
a5a2b94c5f
@ -1732,13 +1732,18 @@ type typeFunc struct {
|
||||
}
|
||||
|
||||
// Matches returns true when the passed types exactly match the Extra list.
|
||||
// TODO: allow unordered types to be matched and reorderd.
|
||||
func (fn typeFunc) Matches(types []reflect.Type) bool {
|
||||
if len(fn.Extra) != len(types) {
|
||||
return false
|
||||
}
|
||||
// reorder the items in array types and fn.Extra
|
||||
// convert the type into string and sort them, check if they are matched
|
||||
varMap := make(map[reflect.Type]bool)
|
||||
for i := range fn.Extra {
|
||||
varMap[fn.Extra[i]] = true
|
||||
}
|
||||
for i := range types {
|
||||
if fn.Extra[i] != types[i] {
|
||||
if _, found := varMap[types[i]]; !found {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user