refactor(tvix/nix-compat): make NixHash an enum with fixed-len bytes

Less Vec<u8> passed around.

Change-Id: Ie153a6bfaa084d7490ffa38634efdf5f3c31a768
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9722
Reviewed-by: Connor Brewster <cbrewster@hey.com>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-10-14 17:48:16 +01:00 committed by clbot
parent 786b0324a9
commit 4ae0f428bd
8 changed files with 226 additions and 220 deletions

View file

@ -13,6 +13,18 @@ pub enum HashAlgo {
Sha512,
}
impl HashAlgo {
// return the number of bytes in the digest of the given hash algo.
pub fn digest_length(&self) -> usize {
match self {
HashAlgo::Sha1 => 20,
HashAlgo::Sha256 => 32,
HashAlgo::Sha512 => 64,
HashAlgo::Md5 => 16,
}
}
}
impl Display for HashAlgo {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match &self {