Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris ac convallis risus, porttitor commodo lectus.
Nam risus purus, auctor quis nunc nec, pretium molestie augue. Nulla sollicitudin enim non risus laoreet, nec placerat augue luctus. Donec et tempus sapien, ac rutrum purus. Nullam sed cursus elit, at condimentum tortor. Donec tempus nulla sem, tincidunt finibus tellus iaculis vel. Suspendisse varius justo quis ex mollis fermentum. Ut id ex vitae dolor hendrerit pretium. Proin lacinia mollis tortor, id fermentum erat. Fusce sed ultricies elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aenean semper molestie ipsum at tincidunt. Ut iaculis ipsum nec tempus ornare. Pellentesque dictum nisi a enim rutrum efficitur. Proin ut odio id odio accumsan finibus. Donec gravida dolor interdum, congue nibh eget, viverra felis.
lorem 1
Donec a nibh urna. Aenean eros augue, laoreet ac mauris at, condimentum tristique ligula. Proin nec sodales libero. Fusce gravida purus non magna lobortis, at egestas justo bibendum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Nulla et augue at enim mollis fringilla. Nullam ullamcorper pretium tristique. Nunc sagittis, erat at dapibus sollicitudin, lacus sem facilisis nulla, id scelerisque nisl velit tempor lectus. Praesent ultricies, ligula eu mollis consequat, sapien neque egestas massa, eget bibendum sapien dolor a felis. Donec posuere sodales purus, sit amet convallis eros placerat nec. Cras ipsum turpis, vulputate sed metus ac, vulputate tincidunt nisi. Proin pellentesque rhoncus urna. Quisque placerat vitae mi a efficitur. In pellentesque eu dolor eget lobortis. In luctus varius quam et pharetra.
- asdf
- 23423
- 2343
- asdfasd
- asdfasd
- asdfsad
lorem 2
Mauris ultricies arcu in dolor egestas, sed rutrum orci pharetra. Nunc vel mauris et quam tempor hendrerit. Mauris ullamcorper aliquet justo eu vulputate. Quisque malesuada ac ligula id vestibulum. Mauris rhoncus nisl sit amet dolor pellentesque scelerisque. Duis ligula elit, posuere quis sagittis nec, ullamcorper sed leo. Quisque lobortis ligula at venenatis bibendum. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Praesent placerat tincidunt nibh, nec dapibus augue hendrerit nec. Nulla sodales arcu sed dapibus pulvinar.
lorem 4
Quisque rutrum dignissim mauris, at finibus orci ultricies non. Nunc quis molestie lacus, non aliquet leo. Proin sagittis felis ligula, vel venenatis nibh volutpat id. Ut a ante luctus, lacinia sapien ut, fringilla tellus. Nam vel eros ut nunc ornare sagittis eu eget eros. Maecenas a est sit amet nisl dictum dignissim non nec nisl. Ut turpis tellus, auctor tempus congue at, vehicula et enim. In sed lectus aliquam, dignissim erat at, iaculis lorem. Duis semper magna fermentum lacinia convallis. Phasellus vel urna maximus, iaculis justo sit amet, lobortis sapien. Ut id tempus quam. Vestibulum ipsum elit, porta id tortor et, luctus iaculis mi. Donec malesuada maximus nisi, ut semper nisi varius nec.
lorem
Mauris vel dolor quam. Nunc eget erat sapien. In mollis velit ut mattis blandit. Nunc
pulvinar id massa eget porta. Nunc ipsum risus, eleifend eu molestie ac, vestibulum sed
enim. Sed augue lacus, porttitor in pellentesque sit amet, vulputate consectetur tortor.
Nam tincidunt eget sapien a eleifend. Nam pulvinar orci sit amet leo tristique, egetinterdum lectus fringilla. Quisque varius dictum egestas. Praesent posuere dolor vitae
nunc pharetra, vel luctus augue molestie. Cras luctus dolor in tincidunt euismod. Duis
suscipit nec massa posuere varius. Sed in neque at turpis molestie ultricies ac a massa.
Maecenas eleifend quam libero, eget hendrerit magna malesuada vitae. Sed arcu ligula,
accumsan nec rhoncus id, mattis et lectus. Sed rhoncus a dolor et lobortis.
Nullam non purus lacus. Nullam lorem metus, eleifend vel consectetur in, pellentesque non enim. Ut convallis sapien nisl, non malesuada arcu consectetur quis. Nunc euismod odio at lacinia consectetur. Suspendisse orci libero, finibus a libero rhoncus, semper tincidunt felis. Maecenas tristique turpis ut purus tristique, ut maximus tellus elementum. Mauris vitae metus arcu. Praesent luctus, erat et tempus facilisis, lectus metus ultricies risus, sed placerat magna nibh eget arcu. Vivamus non felis a ipsum pellentesque faucibus ut id dolor. Aliquam non ipsum eros. Aliquam tristique vitae orci id accumsan. Duis facilisis sed mi et porttitor.
Aliquam scelerisque eros ac dui sollicitudin mattis. Ut et luctus leo. Interdum et
malesuada fames ac ante ipsum primis in faucibus. Fusce pharetra vehicula faucibus. Etiam
ultricies leo a suscipit volutpat. Class aptent taciti sociosqu ad litora torquent per
conubia nostra, per inceptos himenaeos. Aliquam pellentesque tempus turpis. Aenean tellusnulla, egestas eget accumsan sed, iaculis id lectus. Vestibulum mattis, neque in fermentum
porttitor, nisi arcu elementum quam, at blandit mauris massa commodo turpis. Vivamus vitae
odio eleifend, tempor lorem id, ultrices diam. Nullam dapibus dictum malesuada. Nullam in
elit consectetur, tempor erat sit amet, accumsan est.
fn find_entry(t: *Table, entries: []Entry, key: *vl.ObjString) struct { is_new: bool, entry: *Entry } {
_ = t;
// assume power of two in order to optimize modulo with bitwise and
std.debug.assert(@popCount(entries.len) == 1);
const mask = @as(u32, @truncate(entries.len - 1));
var index: u32 = key.hash & mask;
var first_tombstone: ?*Entry = null;
while (true) {
const potential_entry = &entries[index];
if (potential_entry.key) |exist_key| {
if (exist_key == key) return .{ .is_new = false, .entry = potential_entry };
} else {
if (std.meta.activeTag(potential_entry.value) == .nil) {
// truely empty
return .{ .is_new = first_tombstone == null, .entry = first_tombstone orelse potential_entry };
} else {
std.debug.assert(std.meta.activeTag(potential_entry.value) == .booln);
// found a tombstone
if (first_tombstone == null) first_tombstone = potential_entry;
}
}
index = (index + 1) & mask;
}
}
Quisque finibus eros sit amet erat tincidunt suscipit. Suspendisse finibus at eros quis dictum. Praesent a arcu condimentum, vulputate metus vel, pellentesque purus. Etiam sed fermentum nulla, ac iaculis quam. Mauris blandit semper dolor, eget imperdiet neque consectetur et. Etiam tincidunt leo velit, sit amet luctus ex lacinia non. Suspendisse accumsan porta libero ac accumsan. In hac habitasse platea dictumst. Phasellus vitae metus lobortis, placerat arcu vitae, laoreet neque. Vestibulum venenatis tellus in sapien mattis, nec sollicitudin nulla dictum.
Etiam eleifend lacus ut sapien hendrerit eleifend. Phasellus nec dictum tellus, in rhoncus lectus. Nunc semper eros neque. Nam felis nisl, facilisis quis mi id, porta porta urna. Praesent nisi purus, laoreet ac elit ac, finibus viverra elit. Morbi porta lobortis maximus. Vestibulum feugiat consectetur ante, a interdum purus accumsan et.