From 671206a63f89f0ca58f830eabae0d7c31f70a750 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Wed, 22 Nov 2023 20:38:06 +0200 Subject: [PATCH] refactor(tvix/nix-compat): move from_name_and_digest to StorePathRef We can simply use .to_owned() on that thing afterwards if we want to construct an owned StorePath. Change-Id: I0f3e2e4434b99ee522f2a7dbfa391e13a987479c Reviewed-on: https://cl.tvl.fyi/c/depot/+/10105 Autosubmit: flokli Reviewed-by: edef Tested-by: BuildkiteCI --- tvix/nix-compat/src/store_path/mod.rs | 16 ++++++++-------- tvix/store/src/proto/mod.rs | 8 +++----- 2 files changed, 11 insertions(+), 13 deletions(-) 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(); } } }