Hash type. Maps unique keys to their values.
Key-Value pairs are stored and iterated in insertion order.
Currently Hash type has several limitations:
Hash keys are hashed using internal hash() function which can not be overwritten.
The internal hash() function exposed to NGS code but adding implementations or setting "hash" to some other function
will not affect operation of Hashes.
Hash values are compared using internal is_equal() function which can not be overwritten.
Both hash() and is_equal() currently handle only Int, Str and arbitrary objects.
Comparison of arbitrary objects is done by comparing their addresses in memory.
Eachable which each() calls the callback with two arguments
Get all attributes and their values as key-value pairs in the resulting Hash.
Get the underlying Hash with all the keys/values of the HashLike.
Note: the returned value is not a copy.
Create a Hash from Arr of Arr
TODO. Not sure it's used anywhere. Maybe remove?
Create a Hash from keys in arr using cb for values calculation
Create a Hash from keys in "keys" and corresponding values in "values"
Hash(arr:Arr, key_attr:Str, val_attr:Str)
Create Hash from Arr of something that has key and value attribute