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 nar; | ||||||
| pub mod nixbase32; | pub mod nixbase32; | ||||||
| pub mod nixhash; | pub mod nixhash; | ||||||
|  | mod nixhash_algos; | ||||||
| mod nixhash_with_mode; | mod nixhash_with_mode; | ||||||
| pub mod store_path; | pub mod store_path; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -1,10 +1,8 @@ | ||||||
|  | use crate::nixbase32; | ||||||
| use data_encoding::{BASE64, BASE64_NOPAD, HEXLOWER}; | use data_encoding::{BASE64, BASE64_NOPAD, HEXLOWER}; | ||||||
| use serde::{Deserialize, Serialize}; |  | ||||||
| use std::fmt::Display; |  | ||||||
| use thiserror::Error; | use thiserror::Error; | ||||||
| 
 | 
 | ||||||
| use crate::nixbase32; | pub use crate::nixhash_algos::HashAlgo; | ||||||
| 
 |  | ||||||
| pub use crate::nixhash_with_mode::NixHashWithMode; | pub use crate::nixhash_with_mode::NixHashWithMode; | ||||||
| 
 | 
 | ||||||
| /// Nix allows specifying hashes in various encodings, and magically just
 | /// 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.
 | /// Errors related to NixHash construction.
 | ||||||
| #[derive(Debug, Error)] | #[derive(Debug, Error)] | ||||||
| pub enum 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