diff options
| author | 2022-08-22 17:47:02 +0200 | |
|---|---|---|
| committer | 2022-08-22 17:47:02 +0200 | |
| commit | d74ed7fb65bf7ac245d2548ac13f3f3fdabadd16 (patch) | |
| tree | 7d98ba2472073d5414d51651742911993b5fbf81 /src/set.hff | |
| parent | e0686f7953bbc74ff03a7a6b22c0b82995ab494e (diff) | |
llvm hello worlding
Diffstat (limited to 'src/set.hff')
| -rw-r--r-- | src/set.hff | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/set.hff b/src/set.hff index 431ef93..6a03e52 100644 --- a/src/set.hff +++ b/src/set.hff @@ -11,7 +11,6 @@ struct Set<T, Traits> { N int, count int, - fn _nexthash(h *u32) u32 { // return *h = (*h * 1664525) + 1013904223u; // double hashing return ++*h; // linear probing @@ -76,3 +75,14 @@ struct Set<T, Traits> { self->intern(x); } } + +defmacro set_each(v, Set, &body) [ + let $s = (Set); + for let $i = 0; $i < $s.N; ++$i { + let $idx = $s.set[$i]; + if $idx > 0 { + let v = $s.buf.dat[$idx - 1]; + body; + } + } +] |