I really dig this implementation. Has me thinking about ways that you could hide the explicit append call with `ht` as a function pointer that could be interacted with as if it were a python dict. looping could be as if you indexed an array by passing a sentinel value to ht to get the address
I enjoyed your recent stream about different hashing functions. I see that you kept fnv1a as default. I used to use djb2 but according to your tests - fnv1a is better. OFC results might change base on dataset. Regardless I'm planning on trying fnv1a in my next project. Thanks