Delta: Allow ID duplicates

This commit is contained in:
Noah Hilverling 2019-08-07 14:43:06 +02:00
parent 8b6e8b5c9d
commit 3c7a2afda6

View file

@ -3,27 +3,27 @@ package utils
func Delta(a []string, b []string) ([]string, []string, []string) {
maintained := make([]string, 0)
dismissed := make([]string, 0)
hash := make(map[string]bool)
hash := make(map[string]int)
for _, item := range a {
hash[item] = true
hash[item] = 1
}
for _, item := range b {
if hash[item] {
if hash[item] > 0 {
maintained = append(maintained, item)
delete(hash, item)
hash[item] = 2
} else {
dismissed = append(dismissed, item)
}
}
introduced := make([]string, len(hash))
introduced := make([]string, 0)
i := 0
for k := range hash {
introduced[i] = k
i++
for k, v := range hash {
if v == 1 {
introduced = append(introduced, k)
}
}
return introduced, maintained, dismissed