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);
}