pub fn artifact_problem(expected: &Artifact, actual: &[u8]) -> Option<String>Expand description
What is wrong with one artifact’s bytes, or None when they are the bytes
the manifest recorded.
The size is checked as well as the digest, because a size mismatch names the failure an operator can act on — a truncated upload — while a digest mismatch alone only says the bytes differ.