Module sets

The sets module implements an efficient hash set and ordered hash set.

Note: The data types declared here have value semantics: This means that = performs a copy of the set.

Types

TSet[A] = object 
  data: TKeyValuePairSeq[A]
  counter: int
a generic hash set
TOrderedSet[A] = object 
  data: TOrderedKeyValuePairSeq[A]
  counter, first, last: int
set that remembers insertion order

Procs

proc len[A](s: TSet[A]): int
returns the number of keys in s.
proc card[A](s: TSet[A]): int
alias for len.
proc contains[A](s: TSet[A]; key: A): bool
returns true iff key is in s.
proc incl[A](s: var TSet[A]; key: A)
includes an element key in s.
proc excl[A](s: var TSet[A]; key: A)
excludes key from the set s.
proc containsOrIncl[A](s: var TSet[A]; key: A): bool
returns true if s contains key, otherwise key is included in s and false is returned.
proc initSet[A](initialSize = 64): TSet[A]
creates a new hash set that is empty. initialSize needs to be a power of two.
proc toSet[A](keys: openArray[A]): TSet[A]
creates a new hash set that contains the given keys.
proc `$`[A](s: TSet[A]): string
The $ operator for hash sets.
proc len[A](s: TOrderedSet[A]): int {.inline.}
returns the number of keys in s.
proc card[A](s: TOrderedSet[A]): int {.inline.}
alias for len.
proc contains[A](s: TOrderedSet[A]; key: A): bool
returns true iff key is in s.
proc incl[A](s: var TOrderedSet[A]; key: A)
includes an element key in s.
proc containsOrIncl[A](s: var TOrderedSet[A]; key: A): bool
returns true if s contains key, otherwise key is included in s and false is returned.
proc initOrderedSet[A](initialSize = 64): TOrderedSet[A]
creates a new ordered hash set that is empty. initialSize needs to be a power of two.
proc toOrderedSet[A](keys: openArray[A]): TOrderedSet[A]
creates a new ordered hash set that contains the given keys.
proc `$`[A](s: TOrderedSet[A]): string
The $ operator for ordered hash sets.
proc `<`[A](s, t: TSet[A]): bool
Is s a strict subset of t?
proc `<=`[A](s, t: TSet[A]): bool
Is s a subset of t?
proc `==`[A](s, t: TSet[A]): bool
proc map[A, B](data: TSet[A]; op: proc (x: A): B {.closure.}): TSet[B]

Iterators

iterator items[A](s: TSet[A]): A
iterates over any key in the table t.
iterator items[A](s: TOrderedSet[A]): A
iterates over any key in the set s in insertion order.
Generated: 2014-03-11 21:26:50 UTC