summaryrefslogtreecommitdiff
path: root/pkg/domain/entities/set.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2020-03-25 01:26:21 +0100
committerGitHub <noreply@github.com>2020-03-25 01:26:21 +0100
commit69b011d3ac39b985cdbd2bacfa1eaeba166bf224 (patch)
tree21791a26464b4fe55fd879b7c649ea8cd63884db /pkg/domain/entities/set.go
parentb4520649af59780df494d75f50d0b5081eafff04 (diff)
parent1d7cb7cc48d06631e2bdfd0e25eeccc8e87b042f (diff)
downloadpodman-69b011d3ac39b985cdbd2bacfa1eaeba166bf224.tar.gz
podman-69b011d3ac39b985cdbd2bacfa1eaeba166bf224.tar.bz2
podman-69b011d3ac39b985cdbd2bacfa1eaeba166bf224.zip
Merge pull request #5604 from jwhonce/wip/images
V2 podman images/image list
Diffstat (limited to 'pkg/domain/entities/set.go')
-rw-r--r--pkg/domain/entities/set.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/pkg/domain/entities/set.go b/pkg/domain/entities/set.go
new file mode 100644
index 000000000..c8d6cb1a9
--- /dev/null
+++ b/pkg/domain/entities/set.go
@@ -0,0 +1,45 @@
+package entities
+
+import (
+ "strings"
+)
+
+type stringSet struct {
+ m map[string]struct{}
+}
+
+func NewStringSet(elem ...string) *stringSet {
+ s := &stringSet{}
+ s.m = make(map[string]struct{}, len(elem))
+ for _, e := range elem {
+ s.Add(e)
+ }
+ return s
+}
+
+func (s *stringSet) Add(elem string) {
+ s.m[elem] = struct{}{}
+}
+
+func (s *stringSet) Remove(elem string) {
+ delete(s.m, elem)
+}
+
+func (s *stringSet) Contains(elem string) bool {
+ _, ok := s.m[elem]
+ return ok
+}
+
+func (s *stringSet) Elements() []string {
+ keys := make([]string, len(s.m))
+ i := 0
+ for k := range s.m {
+ keys[i] = k
+ i++
+ }
+ return keys
+}
+
+func (s *stringSet) String() string {
+ return strings.Join(s.Elements(), ", ")
+}