From a6580748aabe7fcbea735396ac700661b6c53e87 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Thu, 20 Jul 2023 13:37:29 +0300 Subject: feat(tvix/store/digests): use bytes::Bytes instead of Vec This will save us some copies, because a clone will simply create an additional pointer to the same data. Change-Id: I017a5d6b4c85a861b5541ebad2858ad4fbf8e8fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/8978 Reviewed-by: raitobezarius Autosubmit: flokli Tested-by: BuildkiteCI --- tvix/store/src/nar/renderer.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'tvix/store/src/nar/renderer.rs') diff --git a/tvix/store/src/nar/renderer.rs b/tvix/store/src/nar/renderer.rs index 518854c09c45..e2119ae0796d 100644 --- a/tvix/store/src/nar/renderer.rs +++ b/tvix/store/src/nar/renderer.rs @@ -3,7 +3,6 @@ use crate::{ blobservice::BlobService, directoryservice::DirectoryService, proto::{self, NamedNode}, - B3Digest, }; use count_write::CountWrite; use nix_compat::nar; @@ -65,7 +64,7 @@ fn walk_node( .map_err(RenderError::NARWriterError)?; } proto::node::Node::File(proto_file_node) => { - let digest = B3Digest::from_vec(proto_file_node.digest.clone()).map_err(|_e| { + let digest = proto_file_node.digest.clone().try_into().map_err(|_e| { warn!( file_node = ?proto_file_node, "invalid digest length in file node", @@ -96,8 +95,11 @@ fn walk_node( .map_err(RenderError::NARWriterError)?; } proto::node::Node::Directory(proto_directory_node) => { - let digest = - B3Digest::from_vec(proto_directory_node.digest.to_vec()).map_err(|_e| { + let digest = proto_directory_node + .digest + .clone() + .try_into() + .map_err(|_e| { RenderError::StoreError(crate::Error::StorageError( "invalid digest len in directory node".to_string(), )) -- cgit 1.4.1