about summary refs log tree commit diff
path: root/tvix/nix-compat/src/store_path
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2024-10-13T16·56+0300
committerclbot <clbot@tvl.fyi>2024-10-15T17·20+0000
commitda8fccba7ae775a762d449aba1828ae7f9bcef35 (patch)
tree9b7004ae2616565110f58076c1420fb491ad7c32 /tvix/nix-compat/src/store_path
parent3c3436d3adbe53ef60577b36167c5ae33010a4f7 (diff)
refactor(nix-compat/store_path): add SP for build_nar_based_store_path r/8806
Make this generic on the StorePath<SP> that's being used, similar to the
other functions in there.

Change-Id: I453d1fd3749053d4e5aca156abc18da1f95ca264
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12616
Tested-by: BuildkiteCI
Autosubmit: flokli <flokli@flokli.de>
Reviewed-by: Jörg Thalheim <joerg@thalheim.io>
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
Diffstat (limited to 'tvix/nix-compat/src/store_path')
-rw-r--r--tvix/nix-compat/src/store_path/utils.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/tvix/nix-compat/src/store_path/utils.rs b/tvix/nix-compat/src/store_path/utils.rs
index 3cf3ba06308f..543a2e7e8e6f 100644
--- a/tvix/nix-compat/src/store_path/utils.rs
+++ b/tvix/nix-compat/src/store_path/utils.rs
@@ -1,6 +1,6 @@
 use crate::nixbase32;
 use crate::nixhash::{CAHash, NixHash};
-use crate::store_path::{Error, StorePath, StorePathRef, STORE_DIR};
+use crate::store_path::{Error, StorePath, STORE_DIR};
 use data_encoding::HEXLOWER;
 use sha2::{Digest, Sha256};
 use thiserror;
@@ -119,12 +119,15 @@ where
         .map_err(BuildStorePathError::InvalidStorePath)
 }
 
-/// For given NAR sha256 digest and name, return the new [StorePathRef] this
-/// would have, or an error, in case the name is invalid.
-pub fn build_nar_based_store_path<'a>(
+/// For given NAR sha256 digest and name, return the new [StorePath] this would
+/// have, or an error, in case the name is invalid.
+pub fn build_nar_based_store_path<'a, SP>(
     nar_sha256_digest: &[u8; 32],
     name: &'a str,
-) -> Result<StorePathRef<'a>, BuildStorePathError> {
+) -> Result<StorePath<SP>, BuildStorePathError>
+where
+    SP: std::cmp::Eq + std::ops::Deref<Target = str> + std::convert::From<&'a str>,
+{
     let nar_hash_with_mode = CAHash::Nar(NixHash::Sha256(nar_sha256_digest.to_owned()));
 
     build_ca_path(name, &nar_hash_with_mode, Vec::<String>::new(), false)
@@ -224,7 +227,10 @@ mod test {
     use hex_literal::hex;
 
     use super::*;
-    use crate::nixhash::{CAHash, NixHash};
+    use crate::{
+        nixhash::{CAHash, NixHash},
+        store_path::StorePathRef,
+    };
 
     #[test]
     fn build_text_path_with_zero_references() {