34 lines
562 B
Go
34 lines
562 B
Go
package dnsexit_manager
|
|
|
|
|
|
type Set struct {
|
|
elements map[interface{}]struct{}
|
|
}
|
|
|
|
func CreateSet() *Set {
|
|
return &Set{
|
|
elements: make(map[interface{}]struct{}),
|
|
}
|
|
}
|
|
|
|
func (set *Set) Add(value interface{}) {
|
|
_, found := set.elements[value]
|
|
|
|
if !found{
|
|
set.elements[value] = struct{}{}
|
|
}
|
|
}
|
|
|
|
func (set *Set) Delete(value interface{}) {
|
|
delete(set.elements, value)
|
|
}
|
|
|
|
func (set *Set) List() []interface{} {
|
|
keys := make([]interface{}, 0, len(set.elements))
|
|
for key := range set.elements {
|
|
keys = append(keys, key)
|
|
}
|
|
|
|
return keys
|
|
}
|