putAssumeCapacityNoClobberContext
Function parameters
Parameters
- self:*Self
- key:K
- value:V
- ctx:Context
Type definitions in this namespace
Types
Functions in this namespace
Functions
- StringHashMap
- Builtin hashmap for strings as keys.
- StringHashMapUnmanaged
- Key memory is managed by the caller.
- HashMap
- General purpose hash table.
- HashMapUnmanaged
- A HashMap based on open addressing and linear probing.
= 80
Values
Source
Implementation
pub fn putAssumeCapacityNoClobberContext(self: *Self, key: K, value: V, ctx: Context) void {
assert(!self.containsContext(key, ctx));
const hash: Hash = ctx.hash(key);
const mask = self.capacity() - 1;
var idx: usize = @truncate(hash & mask);
var metadata = self.metadata.? + idx;
while (metadata[0].isUsed()) {
idx = (idx + 1) & mask;
metadata = self.metadata.? + idx;
}
assert(self.available > 0);
self.available -= 1;
const fingerprint = Metadata.takeFingerprint(hash);
metadata[0].fill(fingerprint);
self.keys()[idx] = key;
self.values()[idx] = value;
self.size += 1;
}