use crypto::digest::Digest;
use crypto::sha1::Sha1;
use sha::{self, ShaHash};
#[derive(Clone)]
pub struct ShaHashBuilder {
sha: Sha1,
}
impl ShaHashBuilder {
pub fn new() -> ShaHashBuilder {
ShaHashBuilder { sha: Sha1::new() }
}
pub fn add_bytes(mut self, bytes: &[u8]) -> ShaHashBuilder {
self.sha.input(bytes);
self
}
pub fn build(&self) -> ShaHash {
let mut buffer = [0u8; sha::SHA_HASH_LEN];
self.sha.clone().result(&mut buffer);
buffer.into()
}
}