And replace them with global reset function: void reset(T)(ref T digest) if (isDigest!T) { digest = T.init; } Current usage: SHA1 sha1; sha1.start(); ... calculate hash sha1.start(); // start again ... calculate hash New usage: SHA1 sha1; ... calculate hash sha1.reset(); // start egain ... calculate hash