DoxigAlpha

Function parameters

Parameters

#
self:*Self
key:anytype
ctx:anytype

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 fetchRemoveAdapted(self: *Self, key: anytype, ctx: anytype) ?KV {
    if (self.getIndex(key, ctx)) |idx| {
        const old_key = &self.keys()[idx];
        const old_val = &self.values()[idx];
        const result = KV{
            .key = old_key.*,
            .value = old_val.*,
        };
        self.metadata.?[idx].remove();
        old_key.* = undefined;
        old_val.* = undefined;
        self.size -= 1;
        self.available += 1;
        return result;
    }

    return null;
}