19 lines
647 B
Go
19 lines
647 B
Go
|
|
// Package util provide some utility functions
|
||
|
|
package util
|
||
|
|
|
||
|
|
// RemoveTargetsFromSliceSimple define func to remove targets from a slice of strings
|
||
|
|
func RemoveTargetsFromSliceSimple(targetsSlice []string, targetsToRemove []string) []string {
|
||
|
|
targetsToRemoveSet := make(map[string]struct{}, len(targetsToRemove))
|
||
|
|
for _, target := range targetsToRemove {
|
||
|
|
targetsToRemoveSet[target] = struct{}{}
|
||
|
|
}
|
||
|
|
|
||
|
|
for i := len(targetsSlice) - 1; i >= 0; i-- {
|
||
|
|
if _, found := targetsToRemoveSet[targetsSlice[i]]; found {
|
||
|
|
targetsSlice[i] = targetsSlice[len(targetsSlice)-1]
|
||
|
|
targetsSlice = targetsSlice[:len(targetsSlice)-1]
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return targetsSlice
|
||
|
|
}
|