summaryrefslogtreecommitdiff
path: root/internal/util/unique.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/util/unique.go')
-rw-r--r--internal/util/unique.go15
1 files changed, 15 insertions, 0 deletions
diff --git a/internal/util/unique.go b/internal/util/unique.go
index be97a57b0..364c935b7 100644
--- a/internal/util/unique.go
+++ b/internal/util/unique.go
@@ -18,6 +18,8 @@
package util
+import "net/url"
+
// UniqueStrings returns a deduplicated version of a given string slice.
func UniqueStrings(s []string) []string {
keys := make(map[string]bool, len(s))
@@ -30,3 +32,16 @@ func UniqueStrings(s []string) []string {
}
return list
}
+
+// UniqueURIs returns a deduplicated version of a given *url.URL slice.
+func UniqueURIs(s []*url.URL) []*url.URL {
+ keys := make(map[string]bool, len(s))
+ list := []*url.URL{}
+ for _, entry := range s {
+ if _, value := keys[entry.String()]; !value {
+ keys[entry.String()] = true
+ list = append(list, entry)
+ }
+ }
+ return list
+}