mirror of https://github.com/ethereum/go-ethereum
parent
74ef22d824
commit
4db4ec1621
@ -0,0 +1,32 @@ |
|||||||
|
package ethutil |
||||||
|
|
||||||
|
type Settable interface { |
||||||
|
AsSet() UniqueSet |
||||||
|
} |
||||||
|
|
||||||
|
type UniqueSet map[interface{}]struct{} |
||||||
|
|
||||||
|
func NewSet(v ...interface{}) UniqueSet { |
||||||
|
set := make(UniqueSet) |
||||||
|
for _, val := range v { |
||||||
|
set.Insert(val) |
||||||
|
} |
||||||
|
|
||||||
|
return set |
||||||
|
} |
||||||
|
|
||||||
|
func (self UniqueSet) Insert(k interface{}) UniqueSet { |
||||||
|
self[k] = struct{}{} |
||||||
|
|
||||||
|
return self |
||||||
|
} |
||||||
|
|
||||||
|
func (self UniqueSet) Include(k interface{}) bool { |
||||||
|
_, ok := self[k] |
||||||
|
|
||||||
|
return ok |
||||||
|
} |
||||||
|
|
||||||
|
func Set(s Settable) UniqueSet { |
||||||
|
return s.AsSet() |
||||||
|
} |
Loading…
Reference in new issue