diff --git a/tvix/nix-compat/src/store_path/mod.rs b/tvix/nix-compat/src/store_path/mod.rs index 93a1f0e88..830f75c36 100644 --- a/tvix/nix-compat/src/store_path/mod.rs +++ b/tvix/nix-compat/src/store_path/mod.rs @@ -107,14 +107,6 @@ impl StorePath { } } - /// Construct a [StorePath] from a name and digest. - pub fn from_name_and_digest(name: String, digest: &[u8]) -> Result { - Ok(Self { - name: validate_name(name.as_bytes())?.to_owned(), - digest: digest.try_into().map_err(|_| Error::InvalidLength)?, - }) - } - /// Decompose a string into a [StorePath] and a [PathBuf] containing the /// rest of the path, or an error. #[cfg(target_family = "unix")] @@ -187,6 +179,14 @@ impl<'a> StorePathRef<'a> { } } + /// Construct a [StorePathRef] from a name and digest. + pub fn from_name_and_digest(name: &'a str, digest: &[u8]) -> Result { + Ok(Self { + name: validate_name(name.as_bytes())?, + digest: digest.try_into().map_err(|_| Error::InvalidLength)?, + }) + } + /// Construct a [StorePathRef] by passing the `$digest-$name` string /// that comes after [STORE_DIR_WITH_SLASH]. pub fn from_bytes(s: &'a [u8]) -> Result { diff --git a/tvix/store/src/proto/mod.rs b/tvix/store/src/proto/mod.rs index 3e14f26e2..748976e23 100644 --- a/tvix/store/src/proto/mod.rs +++ b/tvix/store/src/proto/mod.rs @@ -151,11 +151,9 @@ impl PathInfo { // recursive Nix end with multiple .drv suffixes, and only one is popped when // converting to this field. if let Some(deriver) = &narinfo.deriver { - store_path::StorePath::from_name_and_digest( - deriver.name.clone(), - &deriver.digest, - ) - .map_err(ValidatePathInfoError::InvalidDeriverField)?; + store_path::StorePathRef::from_name_and_digest(&deriver.name, &deriver.digest) + .map_err(ValidatePathInfoError::InvalidDeriverField)? + .to_owned(); } } }