refactor(nix-compat) Make nixhash_*
mods hierarchical
They can go under `nixhash` Change-Id: Ia15835c57130b66d58f5df80ae9595dceee00941 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8408 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
df78a4d24e
commit
b932cf2d85
4 changed files with 5 additions and 4 deletions
39
tvix/nix-compat/src/nixhash/algos.rs
Normal file
39
tvix/nix-compat/src/nixhash/algos.rs
Normal file
|
@ -0,0 +1,39 @@
|
|||
use std::fmt::Display;
|
||||
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::nixhash::Error;
|
||||
|
||||
/// This are the hash algorithms supported by cppnix.
|
||||
#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||
pub enum HashAlgo {
|
||||
Md5,
|
||||
Sha1,
|
||||
Sha256,
|
||||
Sha512,
|
||||
}
|
||||
|
||||
impl Display for HashAlgo {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match &self {
|
||||
HashAlgo::Md5 => write!(f, "md5"),
|
||||
HashAlgo::Sha1 => write!(f, "sha1"),
|
||||
HashAlgo::Sha256 => write!(f, "sha256"),
|
||||
HashAlgo::Sha512 => write!(f, "sha512"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<&str> for HashAlgo {
|
||||
type Error = Error;
|
||||
|
||||
fn try_from(algo_str: &str) -> Result<Self, Self::Error> {
|
||||
match algo_str {
|
||||
"md5" => Ok(Self::Md5),
|
||||
"sha1" => Ok(Self::Sha1),
|
||||
"sha256" => Ok(Self::Sha256),
|
||||
"sha512" => Ok(Self::Sha512),
|
||||
_ => Err(Error::InvalidAlgo(algo_str.to_string())),
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue