dedupe removes duplicate addresses preserving order (case-insensitive).
(addrs []string)
| 370 | |
| 371 | // dedupe removes duplicate addresses preserving order (case-insensitive). |
| 372 | func dedupe(addrs []string) []string { |
| 373 | seen := make(map[string]struct{}, len(addrs)) |
| 374 | out := make([]string, 0, len(addrs)) |
| 375 | for _, a := range addrs { |
| 376 | key := strings.ToLower(a) |
| 377 | if _, ok := seen[key]; !ok { |
| 378 | seen[key] = struct{}{} |
| 379 | out = append(out, a) |
| 380 | } |
| 381 | } |
| 382 | return out |
| 383 | } |