Moved assignment, binding, and case statement macro code into src/syntax/.
[cslatevm.git] / src / lib / sortedSet.slate
blob5ae4a448853b0371e930b3cf5eb8c26a45ba2b84
1 define: #SortedSet &parents: {SortedArray. NoDuplicatesCollection}.
3 s@(SortedSet traits) new
4 [#new sendTo: {s} through: {SortedArray}].
6 s@(Set traits) sort
7 [(SortedSet newSizeOf: s) `>> [addAll: s. ]].
9 s@(Set traits) sortBy: block
10 [(SortedSet newSizeOf: s) `>> [sortBlock := block. addAll: s. ]].
12 sc@(SortedSet traits) add: obj
14   (sc includes: obj)
15     ifFalse: [sc at: (sc indexForInserting: obj) insert: obj].
16   obj