On 8/8/2012 9:47 AM, Johannes Pfau wrote:
Am Wed, 8 Aug 2012 17:50:33 +0200
schrieb Johannes Pfau <nos...@example.com>:

However, I do agree digest!Hash, md5Of, sha1Of should have an
additional overload which takes a InputRange. It would be implemented
with copy and be a nice convenience function.

I implemented the function, it's actually quite simple:
----
digestType!Hash digestRange(Hash, Range)(Range data) if(isDigest!Hash &&
     isInputRange!Range && __traits(compiles,
     digest!Hash(ElementType!(Range).init)))
{
     Hash hash;
     hash.start();
     copy(data, hash);
     return hash.finish();
}
----

The finish() should be implicit when the range ends.


but I don't know how make it an overload. See thread "overloading a
function taking a void[][]" in D.learn for details.


I don't know what you mean, it takes a range, not a void[][] as input.


Reply via email to