DoxigAlpha

Function parameters

Parameters

#
key:anytype
ctx:anytype

Type definitions in this namespace

Types

#

An `ArrayHashMap` with default hash and equal functions.

Functions

#
AutoArrayHashMap
An `ArrayHashMap` with default hash and equal functions.
AutoArrayHashMapUnmanaged
An `ArrayHashMapUnmanaged` with default hash and equal functions.
StringArrayHashMap
An `ArrayHashMap` with strings as keys.
StringArrayHashMapUnmanaged
An `ArrayHashMapUnmanaged` with strings as keys.
ArrayHashMap
Deprecated in favor of `ArrayHashMapWithAllocator` (no code changes needed)
ArrayHashMapWithAllocator
A hash table of keys and values, each stored sequentially.
ArrayHashMapUnmanaged
A hash table of keys and values, each stored sequentially.

Source

Implementation

#
pub fn getIndexAdapted(self: Self, key: anytype, ctx: anytype) ?usize {
    const header = self.index_header orelse {
        // Linear scan.
        const h = if (store_hash) checkedHash(ctx, key) else {};
        const slice = self.entries.slice();
        const hashes_array = slice.items(.hash);
        const keys_array = slice.items(.key);
        for (keys_array, 0..) |*item_key, i| {
            if (hashes_array[i] == h and checkedEql(ctx, key, item_key.*, i)) {
                return i;
            }
        }
        return null;
    };
    switch (header.capacityIndexType()) {
        .u8 => return self.getIndexWithHeaderGeneric(key, ctx, header, u8),
        .u16 => return self.getIndexWithHeaderGeneric(key, ctx, header, u16),
        .u32 => return self.getIndexWithHeaderGeneric(key, ctx, header, u32),
    }
}