From df78a4d24ee88289d979c2068ddf59d949c41004 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Thu, 30 Mar 2023 17:30:28 -0400 Subject: refactor(tvix/nix-compat): Inline `texthash` mod It is moved into `store_path::utils` with the other path builders. Change-Id: I3257170e442af5d83bcf79e63fa7387dd914597c Reviewed-on: https://cl.tvl.fyi/c/depot/+/8410 Reviewed-by: flokli Tested-by: BuildkiteCI --- tvix/nix-compat/src/texthash.rs | 42 ----------------------------------------- 1 file changed, 42 deletions(-) delete mode 100644 tvix/nix-compat/src/texthash.rs (limited to 'tvix/nix-compat/src/texthash.rs') diff --git a/tvix/nix-compat/src/texthash.rs b/tvix/nix-compat/src/texthash.rs deleted file mode 100644 index 959a4dc3dc..0000000000 --- a/tvix/nix-compat/src/texthash.rs +++ /dev/null @@ -1,42 +0,0 @@ -use sha2::{Digest, Sha256}; - -use crate::{nixhash::NixHash, store_path}; - -/// This contains the Nix logic to create "text hash strings", which are used -/// in `builtins.toFile`, as well as in Derivation Path calculation. -/// -/// A text hash is calculated by concatenating the following fields, separated by a `:`: -/// -/// - text -/// - references, individually joined by `:` -/// - the nix_hash_string representation of the sha256 digest of some contents -/// - the value of `storeDir` -/// - the name -pub fn text_hash_string, I: IntoIterator, C: AsRef<[u8]>>( - name: &str, - content: C, - references: I, -) -> String { - let mut s = String::from("text:"); - - for reference in references { - s.push_str(reference.as_ref()); - s.push(':'); - } - - // the nix_hash_string representation of the sha256 digest of some contents - s.push_str( - &{ - let content_digest = { - let hasher = Sha256::new_with_prefix(content); - hasher.finalize() - }; - NixHash::new(crate::nixhash::HashAlgo::Sha256, content_digest.to_vec()) - } - .to_nix_hash_string(), - ); - - s.push_str(&format!(":{}:{}", store_path::STORE_DIR, name)); - - s -} -- cgit 1.4.1