From 99a61def17edbd77795efd2fda9e557b2cfef571 Mon Sep 17 00:00:00 2001 From: edef Date: Fri, 27 Oct 2023 10:53:46 +0000 Subject: fix(tvix/nix-compat): don't box CAHash::Text Change-Id: I31df3909bc21c9038f9fb831879e60e541242819 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9853 Tested-by: BuildkiteCI Reviewed-by: flokli --- tvix/nix-compat/src/derivation/validate.rs | 2 +- tvix/nix-compat/src/nixhash/ca_hash.rs | 12 ++++++------ tvix/nix-compat/src/store_path/utils.rs | 9 ++------- 3 files changed, 9 insertions(+), 14 deletions(-) (limited to 'tvix/nix-compat/src') diff --git a/tvix/nix-compat/src/derivation/validate.rs b/tvix/nix-compat/src/derivation/validate.rs index 3474dcb5db..37ddf90171 100644 --- a/tvix/nix-compat/src/derivation/validate.rs +++ b/tvix/nix-compat/src/derivation/validate.rs @@ -141,7 +141,7 @@ mod test { "out".to_string(), Output { path: "".to_string(), - ca_hash: Some(CAHash::Text(Box::new([0; 32]))), // This is disallowed + ca_hash: Some(CAHash::Text([0; 32])), // This is disallowed }, ); diff --git a/tvix/nix-compat/src/nixhash/ca_hash.rs b/tvix/nix-compat/src/nixhash/ca_hash.rs index 5d9ae3f3a8..93ef52cc63 100644 --- a/tvix/nix-compat/src/nixhash/ca_hash.rs +++ b/tvix/nix-compat/src/nixhash/ca_hash.rs @@ -19,17 +19,17 @@ use super::from_algo_and_digest; /// - "digest". The digest itself. #[derive(Clone, Debug, Eq, PartialEq)] pub enum CAHash { - Flat(NixHash), // "fixed flat" - Nar(NixHash), // "fixed recursive" - Text(Box<[u8; 32]>), // "text", only supports sha256 + Flat(NixHash), // "fixed flat" + Nar(NixHash), // "fixed recursive" + Text([u8; 32]), // "text", only supports sha256 } impl CAHash { pub fn digest(&self) -> Cow { - match self { - CAHash::Nar(ref digest) => Cow::Borrowed(digest), - CAHash::Text(ref digest) => Cow::Owned(NixHash::Sha256(*digest.clone())), + match *self { CAHash::Flat(ref digest) => Cow::Borrowed(digest), + CAHash::Nar(ref digest) => Cow::Borrowed(digest), + CAHash::Text(digest) => Cow::Owned(NixHash::Sha256(digest)), } } diff --git a/tvix/nix-compat/src/store_path/utils.rs b/tvix/nix-compat/src/store_path/utils.rs index b625abdfd0..375882795c 100644 --- a/tvix/nix-compat/src/store_path/utils.rs +++ b/tvix/nix-compat/src/store_path/utils.rs @@ -50,12 +50,7 @@ pub fn build_text_path, I: IntoIterator, C: AsRef<[u8]>> // produce the sha256 digest of the contents let content_digest = Sha256::new_with_prefix(content).finalize().into(); - build_ca_path( - name, - &CAHash::Text(Box::new(content_digest)), - references, - false, - ) + build_ca_path(name, &CAHash::Text(content_digest), references, false) } /// This builds a store path from a [CAHash] and a list of references. @@ -72,7 +67,7 @@ pub fn build_ca_path, S: AsRef, I: IntoIterator>( } build_store_path_from_fingerprint_parts( &make_references_string("text", references, false), - &NixHash::Sha256(*digest.to_owned()), + &NixHash::Sha256(*digest), name, ) .map_err(BuildStorePathError::InvalidStorePath) -- cgit 1.4.1