From 540e5669007a5f21b24bb8c63fd89756d0176866 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Tue, 25 Jun 2024 21:48:45 +0300 Subject: refactor(tvix/glue): take &CAHash, not CAHash We use a bit less cloning that way. Change-Id: I28bf99577e4a481e35fbf99d0724adab5502a1bd Reviewed-on: https://cl.tvl.fyi/c/depot/+/11874 Reviewed-by: Connor Brewster Tested-by: BuildkiteCI Reviewed-by: Ilan Joselevich --- tvix/glue/src/builtins/import.rs | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'tvix/glue/src/builtins') diff --git a/tvix/glue/src/builtins/import.rs b/tvix/glue/src/builtins/import.rs index 9257975a09d6..a3273eca15dc 100644 --- a/tvix/glue/src/builtins/import.rs +++ b/tvix/glue/src/builtins/import.rs @@ -284,27 +284,29 @@ mod import_builtins { } }; - let obtained_hash = ca_hash.hash().clone().into_owned(); let (path_info, _hash, output_path) = state.tokio_handle.block_on(async { state - .node_to_path_info(name.as_ref(), path.as_ref(), ca_hash, root_node) + .node_to_path_info(name.as_ref(), path.as_ref(), &ca_hash, root_node) .await })?; if let Some(expected_sha256) = expected_sha256 { - if obtained_hash != expected_sha256 { + if *ca_hash.hash() != expected_sha256 { Err(ImportError::HashMismatch( path.to_string_lossy().to_string(), expected_sha256, - obtained_hash, + ca_hash.hash().into_owned(), ))?; } } - let _: tvix_store::proto::PathInfo = state.tokio_handle.block_on(async { - // This is necessary to cause the coercion of the error type. - Ok::<_, std::io::Error>(state.path_info_service.as_ref().put(path_info).await?) - })?; + state + .tokio_handle + .block_on(async { state.path_info_service.as_ref().put(path_info).await }) + .map_err(|e| tvix_eval::ErrorKind::IO { + path: Some(path.to_path_buf()), + error: Rc::new(e.into()), + })?; // We need to attach context to the final output path. let outpath = output_path.to_absolute_path(); @@ -339,7 +341,7 @@ mod import_builtins { .register_node_in_path_info_service( name, &p, - CAHash::Nar(NixHash::Sha256(nar_sha256)), + &CAHash::Nar(NixHash::Sha256(nar_sha256)), root_node, ) .await -- cgit 1.4.1