Function nix_compat::nixhash::from_str

source ·
pub fn from_str(s: &str, algo_str: Option<&str>) -> NixHashResult<NixHash>
Expand description

Nix allows specifying hashes in various encodings, and magically just derives the encoding. This function parses strings to a NixHash.

Hashes can be:

  • Nix hash strings
  • SRI hashes
  • bare digests

Encoding for Nix hash strings or bare digests can be:

  • base16 (lowerhex),
  • nixbase32,
  • base64 (StdEncoding)
  • sri string

The encoding is derived from the length of the string and the hash type. The hash is communicated out-of-band, but might also be in-band (in the case of a nix hash string or SRI), in which it needs to be consistent with the one communicated out-of-band.