about summary refs log tree commit diff
path: root/tvix/store
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/store')
-rw-r--r--tvix/store/src/store_io.rs17
1 files changed, 12 insertions, 5 deletions
diff --git a/tvix/store/src/store_io.rs b/tvix/store/src/store_io.rs
index 1030bbdd337f..615d1f50f4a3 100644
--- a/tvix/store/src/store_io.rs
+++ b/tvix/store/src/store_io.rs
@@ -114,9 +114,12 @@ impl TvixStoreIO {
         )
         .expect("error during nar calculation"); // TODO: handle error
 
-        // For given NAR sha256 digest and name, return the new [StorePath] this would have.
-        let nar_hash_with_mode =
-            NixHashWithMode::Recursive(NixHash::new(HashAlgo::Sha256, nar_sha256.to_vec()));
+        // We populate the struct directly, as we know the sha256 digest has the
+        // right size.
+        let nar_hash_with_mode = NixHashWithMode::Recursive(NixHash {
+            algo: HashAlgo::Sha256,
+            digest: nar_sha256.to_vec(),
+        });
 
         let name = path
             .file_name()
@@ -172,8 +175,12 @@ impl TvixStoreIO {
 /// For given NAR sha256 digest and name, return the new [StorePath] this would have.
 #[instrument(skip(nar_sha256_digest), ret, fields(nar_sha256_digest=BASE64.encode(nar_sha256_digest)))]
 fn calculate_nar_based_store_path(nar_sha256_digest: &[u8; 32], name: &str) -> StorePath {
-    let nar_hash_with_mode =
-        NixHashWithMode::Recursive(NixHash::new(HashAlgo::Sha256, nar_sha256_digest.to_vec()));
+    // We populate the struct directly, as we know the sha256 digest has the
+    // right size.
+    let nar_hash_with_mode = NixHashWithMode::Recursive(NixHash {
+        algo: HashAlgo::Sha256,
+        digest: nar_sha256_digest.to_vec(),
+    });
 
     build_regular_ca_path(name, &nar_hash_with_mode, Vec::<String>::new(), false).unwrap()
 }