From 432222f098bfceb033e63e9a63687e35574457f9 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Wed, 19 Jul 2023 18:52:50 +0300 Subject: feat(tvix/store/proto): use Bytes instead of Vec Makes use of https://github.com/tokio-rs/prost/pull/341, which makes our bytes field cheaper to clone. It's a bit annoying to configure due to https://github.com/hyperium/tonic/issues/908, but the workaround does get the job done. Change-Id: I25714600b041bb5432d3adf5859b151e72b12778 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8975 Reviewed-by: raitobezarius Tested-by: BuildkiteCI Reviewed-by: tazjin Autosubmit: flokli --- tvix/store/src/store_io.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'tvix/store/src/store_io.rs') diff --git a/tvix/store/src/store_io.rs b/tvix/store/src/store_io.rs index 19a809b6a1a7..1030bbdd337f 100644 --- a/tvix/store/src/store_io.rs +++ b/tvix/store/src/store_io.rs @@ -129,7 +129,7 @@ impl TvixStoreIO { // assemble a new root_node with a name that is derived from the nar hash. let renamed_root_node = { - let name = output_path.to_string().into_bytes(); + let name = output_path.to_string().into_bytes().into(); match root_node { crate::proto::node::Node::Directory(n) => { @@ -153,7 +153,7 @@ impl TvixStoreIO { references: vec![], narinfo: Some(crate::proto::NarInfo { nar_size, - nar_sha256: nar_sha256.to_vec(), + nar_sha256: nar_sha256.to_vec().into(), signatures: vec![], reference_names: vec![], // TODO: narinfo for talosctl.src contains `CA: fixed:r:sha256:1x13j5hy75221bf6kz7cpgld9vgic6bqx07w5xjs4pxnksj6lxb6` @@ -264,7 +264,7 @@ impl EvalIO for TvixStoreIO { } #[instrument(skip(self), ret, err)] - fn read_dir(&self, path: &Path) -> Result, FileType)>, io::Error> { + fn read_dir(&self, path: &Path) -> Result, io::Error> { if let Ok((store_path, sub_path)) = StorePath::from_absolute_path_full(&path.to_string_lossy()) { @@ -283,7 +283,7 @@ impl EvalIO for TvixStoreIO { })?; if let Some(directory) = self.directory_service.get(&digest)? { - let mut children: Vec<(Vec, FileType)> = Vec::new(); + let mut children: Vec<(bytes::Bytes, FileType)> = Vec::new(); for node in directory.nodes() { children.push(match node { crate::proto::node::Node::Directory(e) => { -- cgit 1.4.1