From f20969de9b42527518b27e3fb78b6d487780baff Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Thu, 4 Jan 2024 19:18:06 +0200 Subject: refactor(tvix/castore): relax trait bounds for DS Make this an `AsRef`. This helps dropping some Clone requirements. Unfortunately, we can't thread this through to TvixStoreIO just yet. Change-Id: I3f07eb28d6c793d3313fe21506ada84d5a8aa3ac Reviewed-on: https://cl.tvl.fyi/c/depot/+/10533 Autosubmit: flokli Tested-by: BuildkiteCI Reviewed-by: raitobezarius --- tvix/castore/src/import.rs | 4 ++-- tvix/castore/src/tests/import.rs | 7 ++++--- tvix/store/src/utils.rs | 9 +++++---- 3 files changed, 11 insertions(+), 9 deletions(-) (limited to 'tvix') diff --git a/tvix/castore/src/import.rs b/tvix/castore/src/import.rs index 1b8c4ec5a54e..4545f35fc319 100644 --- a/tvix/castore/src/import.rs +++ b/tvix/castore/src/import.rs @@ -149,7 +149,7 @@ where /// It's up to the caller to possibly register it somewhere (and potentially /// rename it based on some naming scheme) #[instrument(skip(blob_service, directory_service), fields(path=?p), err)] -pub async fn ingest_path( +pub async fn ingest_path<'a, BS, DS, P>( blob_service: BS, directory_service: DS, p: P, @@ -157,7 +157,7 @@ pub async fn ingest_path( where P: AsRef + Debug, BS: Deref + Clone, - DS: Deref, + DS: Deref, { let mut directories: HashMap = HashMap::default(); diff --git a/tvix/castore/src/tests/import.rs b/tvix/castore/src/tests/import.rs index 75c632799cd9..333254706d61 100644 --- a/tvix/castore/src/tests/import.rs +++ b/tvix/castore/src/tests/import.rs @@ -4,6 +4,7 @@ use crate::fixtures::*; use crate::import::ingest_path; use crate::proto; use crate::utils::{gen_blob_service, gen_directory_service}; +use std::ops::Deref; use std::sync::Arc; use tempfile::TempDir; @@ -27,7 +28,7 @@ async fn symlink() { let root_node = ingest_path( blob_service, - directory_service, + &directory_service.deref(), tmpdir.path().join("doesntmatter"), ) .await @@ -53,7 +54,7 @@ async fn single_file() { let root_node = ingest_path( blob_service.clone(), - directory_service, + &directory_service.deref(), tmpdir.path().join("root"), ) .await @@ -92,7 +93,7 @@ async fn complicated() { let root_node = ingest_path( blob_service.clone(), - directory_service.clone(), + &directory_service.deref(), tmpdir.path(), ) .await diff --git a/tvix/store/src/utils.rs b/tvix/store/src/utils.rs index 05d4f79b1239..6edbf94eec33 100644 --- a/tvix/store/src/utils.rs +++ b/tvix/store/src/utils.rs @@ -54,7 +54,7 @@ pub async fn import_path( where P: AsRef + std::fmt::Debug, BS: Deref + Clone, - DS: Deref + Clone, + DS: Deref, PS: Deref, { // calculate the name @@ -71,9 +71,10 @@ where })?; // Ingest the path into blob and directory service. - let root_node = tvix_castore::import::ingest_path(blob_service, directory_service, &path) - .await - .expect("failed to ingest path"); + let root_node = + tvix_castore::import::ingest_path(blob_service, &directory_service.deref(), &path) + .await + .expect("failed to ingest path"); debug!(root_node =?root_node, "import successful"); -- cgit 1.4.1