Return a hash value calculated from the specified attribute using the specified size as the number of slots. The hash value is guaranteed to be in the range [0 .. size ‐ 1]. The behavior is undefined unless 0 < size.