aboutsummaryrefslogtreecommitdiff
path: root/src/set.hff
diff options
context:
space:
mode:
authorlemon <lsof@mailbox.org>2022-08-22 17:47:02 +0200
committerlemon <lsof@mailbox.org>2022-08-22 17:47:02 +0200
commitd74ed7fb65bf7ac245d2548ac13f3f3fdabadd16 (patch)
tree7d98ba2472073d5414d51651742911993b5fbf81 /src/set.hff
parente0686f7953bbc74ff03a7a6b22c0b82995ab494e (diff)
llvm hello worlding
Diffstat (limited to 'src/set.hff')
-rw-r--r--src/set.hff12
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;
+ }
+ }
+]