diff options
author | Simon Hafner <hafnersimon@gmail.com> | 2014-01-31 18:22:27 -0600 |
---|---|---|
committer | Simon Hafner <hafnersimon@gmail.com> | 2014-01-31 18:22:27 -0600 |
commit | 2c5a2d07fb3bb25dcb590d61882f88528ea17e91 (patch) | |
tree | 33a360aa77e7f205af243ed116066cbb483988d1 /lib/pure/collections/sets.nim | |
parent | e01fb17d023b046b3403a4413a637d24a9dc492f (diff) | |
download | Nim-2c5a2d07fb3bb25dcb590d61882f88528ea17e91.tar.gz |
sets equivalence
Diffstat (limited to 'lib/pure/collections/sets.nim')
-rw-r--r-- | lib/pure/collections/sets.nim | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/pure/collections/sets.nim b/lib/pure/collections/sets.nim index 7259772aa..e478a2ce1 100644 --- a/lib/pure/collections/sets.nim +++ b/lib/pure/collections/sets.nim @@ -224,3 +224,20 @@ proc toOrderedSet*[A](keys: openArray[A]): TOrderedSet[A] = proc `$`*[A](s: TOrderedSet[A]): string = ## The `$` operator for ordered hash sets. dollarImpl() + +proc `<`*[A](s, t: TSet[A]): bool = + ## Is a a strict subset of b? + s.counter != t.counter and s <= t + +proc `<=`*[A](s, t: TSet[A]): bool = + ## Is a a subset of b? + result = false + if s.counter > t.counter: return + result = true + for item in s: + if not(t.contains(item)): + result = false + return + +proc `==`*[A](s, t: TSet[A]): bool = + s.counter == t.counter and s <= t |