///|
/// `HashFunc` represents a hash algorithm like `@md5` or `@sha256`.
pub(open) trait HashFunc {
name(Self) -> String
write(Self, Byte) -> Unit
check_sum(Self) -> String
}
///|
let _trait1 : &HashFunc = @md5.Digest::new()
///|
let _trait2 : &HashFunc = @sha256.Digest::new()
///|
pub impl HashFunc for @md5.Digest with name(self) {
self.name()
}
///|
pub impl HashFunc for @md5.Digest with write(self, b) {
self.write(b)
}
///|
pub impl HashFunc for @md5.Digest with check_sum(self) {
self.check_sum()
}
///|
pub impl HashFunc for @sha256.Digest with name(self) {
self.name()
}
///|
pub impl HashFunc for @sha256.Digest with write(self, b) {
self.write(b)
}
///|
pub impl HashFunc for @sha256.Digest with check_sum(self) {
self.check_sum()
}