
* MapObserver implements Hash * Rename the hash utility function (in MapObserver) to hash_easy * Use hash_slice as a helper function to impl Hash trait * define_python_map_observer macro implements Hash trait * Also rename hash_easy to hash_simple * Rename hash_slice to hash_helper * hash_helper is used to define the implementation of hash function/trait * Factor out the Hash trait and function for runtime library structs (#1977) * Simplify hash_simple (of trait MapObserver) (#1977) * Use hash_one function to make hash_simple a one-liner * remove hash_helper --------- Co-authored-by: Edwin Fernando <ef322@ic.ac.uk> Co-authored-by: Addison Crump <addison.crump@cispa.de>