DoxigAlpha

autoHash

Provides generic hashing for any eligible type. Only hashes key itself, pointers are not followed. Slices as well as unions and structs containing slices are rejected to avoid ambiguity on the user's intention.

Function parameters

Parameters

#
hasher:anytype
key:anytype

Describes how pointer types should be hashed.

Types

#
HashStrategy
Describes how pointer types should be hashed.

Helper function to hash a pointer and mutate the strategy if needed.

Functions

#
hashPointer
Helper function to hash a pointer and mutate the strategy if needed.
hashArray
Helper function to hash a set of contiguous objects, from an array or slice.
hash
Provides generic hashing for any eligible type.
autoHash
Provides generic hashing for any eligible type.

Source

Implementation

#
pub fn autoHash(hasher: anytype, key: anytype) void {
    const Key = @TypeOf(key);
    if (comptime typeContainsSlice(Key)) {
        @compileError("std.hash.autoHash does not allow slices as well as unions and structs containing slices here (" ++ @typeName(Key) ++
            ") because the intent is unclear. Consider using std.hash.autoHashStrat or providing your own hash function instead.");
    }

    hash(hasher, key, .Shallow);
}