refactor(tvix/nix-compat): move HashAlgo to separate file
… and keep the pub exports as is. Change-Id: I2ad21660577553395f05b5ba71083626429b0dfc Reviewed-on: https://cl.tvl.fyi/c/depot/+/8363 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de>
This commit is contained in:
		
							parent
							
								
									e53152866e
								
							
						
					
					
						commit
						14c5781389
					
				
					 3 changed files with 42 additions and 38 deletions
				
			
		|  | @ -4,6 +4,7 @@ pub mod derivation; | |||
| pub mod nar; | ||||
| pub mod nixbase32; | ||||
| pub mod nixhash; | ||||
| mod nixhash_algos; | ||||
| mod nixhash_with_mode; | ||||
| pub mod store_path; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,10 +1,8 @@ | |||
| use crate::nixbase32; | ||||
| use data_encoding::{BASE64, BASE64_NOPAD, HEXLOWER}; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use std::fmt::Display; | ||||
| use thiserror::Error; | ||||
| 
 | ||||
| use crate::nixbase32; | ||||
| 
 | ||||
| pub use crate::nixhash_algos::HashAlgo; | ||||
| pub use crate::nixhash_with_mode::NixHashWithMode; | ||||
| 
 | ||||
| /// Nix allows specifying hashes in various encodings, and magically just
 | ||||
|  | @ -29,40 +27,6 @@ impl NixHash { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| /// 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())), | ||||
|         } | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// Errors related to NixHash construction.
 | ||||
| #[derive(Debug, Error)] | ||||
| pub enum Error { | ||||
|  |  | |||
							
								
								
									
										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