in pkg/controller/common/clean_type.go [118:147]
func (g CleanTypeRetriever) Remove(retriever CleanTypeRetriever, opt RemoveOpt) CleanTypeRetriever {
return func(mapper meta.RESTMapper) ([]cleanType, error) {
existing, err := g(mapper)
if err != nil {
return nil, err
}
filters, err := retriever(mapper)
if err != nil {
return nil, err
}
var ok []cleanType
for _, t := range existing {
filtered := false
for _, filter := range filters {
if equal(t, filter, opt.CompareStrat) {
filtered = true
break
}
}
if !filtered {
ok = append(ok, t)
}
}
return ok, nil
}
}