MurmurHash3

Guillaume Chatelet via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Sun Dec 13 08:24:35 PST 2015


On Sunday, 13 December 2015 at 12:44:06 UTC, Marc Schütz wrote:
> AFAICS this doesn't conform to the digest interface. For 
> example, there should be a `finish` method that returns the 
> hash as a static array (see the ExampleDigest [1]).

The structs themselves do not but the alias at the beginning of 
the file make sure they do.

alias MurmurHash3_x86_32 = Digester!SMurmurHash3_x86_32;
alias MurmurHash3_x86_128 = Digester!SMurmurHash3_x86_128;
alias MurmurHash3_x64_128 = Digester!SMurmurHash3_x64_128;

> More importantly, I believe your `put()` implementation only 
> works if it is fed the entire data at once. I haven't tested 
> it, but I believe that the following two calls will have a 
> different result, while they should result in the same hash:
>
>     hash.put([1,2,3,4,5,6]);
>
> vs
>
>     hash.put([1,2,3]);
>     hash.put([4,5,6]);

I suspect this as well although I haven't tested.
I'll add more tests and add the missing logic if needed.



More information about the Digitalmars-d-announce mailing list