set.go 507 B

123456789101112131415161718192021222324252627282930313233
  1. package dbus
  2. type set struct {
  3. data map[string]bool
  4. }
  5. func (s *set) Add(value string) {
  6. s.data[value] = true
  7. }
  8. func (s *set) Remove(value string) {
  9. delete(s.data, value)
  10. }
  11. func (s *set) Contains(value string) (exists bool) {
  12. _, exists = s.data[value]
  13. return
  14. }
  15. func (s *set) Length() (int) {
  16. return len(s.data)
  17. }
  18. func (s *set) Values() (values []string) {
  19. for val, _ := range s.data {
  20. values = append(values, val)
  21. }
  22. return
  23. }
  24. func newSet() (*set) {
  25. return &set{make(map[string] bool)}
  26. }