pub fn hash_file_or_empty(path: Option<&Path>) -> StringExpand description
SHA256 of a file’s bytes, hex-encoded.
An absent or unreadable path hashes to the empty-content digest, matching
client.py’s _compute_requirements_hash: a plugin with no requirements
file gets a stable constant rather than an error, so the manifest signals
carry the change detection instead.