///|
/// Register a successfully calculated content digest and return the first file
/// that used the same digest, if one was already seen.
fn register_content_digest(
seen : Map[String, String],
file : String,
digest : String,
) -> String? {
if digest == "—" {
return None
}
match seen.get(digest) {
Some(previous_file) => Some(previous_file)
None => {
seen[digest] = file
None
}
}
}
///|
test "content digest matching stays informational and keeps the first path" {
let seen : Map[String, String] = Map([])
assert_true(register_content_digest(seen, "original.webp", "abc") is None)
assert_true(
register_content_digest(seen, "copy.webp", "abc") == Some("original.webp"),
)
assert_true(
register_content_digest(seen, "another-copy.webp", "abc") ==
Some("original.webp"),
)
assert_true(register_content_digest(seen, "unhashed.webp", "—") is None)
assert_true(!seen.contains("—"))
}