use sha2::{Digest, Sha256};
pub fn digest_hex(bytes: &[u8]) -> String {
let mut hasher = Sha256::new();
hasher.update(bytes);
format!("{:x}", hasher.finalize())
}
#[cfg(test)]
mod tests {
use super::digest_hex;
#[test]
fn digest_hex_matches_known_answers() {
assert_eq!(
digest_hex(b""),
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
);
assert_eq!(
digest_hex(b"abc"),
"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
);
}
#[test]
fn the_migrated_call_sites_agree_on_identical_bytes() {
let bytes: &[u8] = b"rapid-structure p1-8 corroboration vector";
let temp = crate::test_support::TempDir::new("p1-8-digest-hex");
let path = temp.path().join("blob.bin");
std::fs::write(&path, bytes).expect("temp blob writable");
let (len, via_run) = crate::evaluation::table::run::digest_file(&path)
.expect("digest_file on a plain temp blob");
assert_eq!(len, bytes.len() as u64);
assert_eq!(via_run, digest_hex(bytes), "run side diverged");
}
}