diff options
author | Florian Klink <flokli@flokli.de> | 2024-10-13T16·56+0300 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-10-15T17·20+0000 |
commit | da8fccba7ae775a762d449aba1828ae7f9bcef35 (patch) | |
tree | 9b7004ae2616565110f58076c1420fb491ad7c32 | |
parent | 3c3436d3adbe53ef60577b36167c5ae33010a4f7 (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>
-rw-r--r-- | tvix/nix-compat/src/store_path/utils.rs | 18 |
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() { |