func()

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
	}
}