From 0009383c073169c5475168a3088452b80e0b8060 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Tue, 9 Jan 2024 11:14:24 +0200 Subject: refactor(tvix/castore/directorysvc): AsRef traverse_to Change-Id: I641bd4ab3de591a013f03137f1e16295946315f3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10579 Reviewed-by: raitobezarius Autosubmit: flokli Tested-by: BuildkiteCI --- tvix/castore/src/directoryservice/traverse.rs | 26 ++++++++++++-------------- tvix/glue/src/tvix_store_io.rs | 3 +-- 2 files changed, 13 insertions(+), 16 deletions(-) (limited to 'tvix') diff --git a/tvix/castore/src/directoryservice/traverse.rs b/tvix/castore/src/directoryservice/traverse.rs index 1d1de6e18f..528cef7574 100644 --- a/tvix/castore/src/directoryservice/traverse.rs +++ b/tvix/castore/src/directoryservice/traverse.rs @@ -1,6 +1,6 @@ use super::DirectoryService; use crate::{proto::NamedNode, B3Digest, Error}; -use std::{ops::Deref, os::unix::ffi::OsStrExt}; +use std::os::unix::ffi::OsStrExt; use tracing::{instrument, warn}; /// This descends from a (root) node to the given (sub)path, returning the Node @@ -12,7 +12,7 @@ pub async fn descend_to( path: &std::path::Path, ) -> Result, Error> where - DS: Deref, + DS: AsRef, { // strip a possible `/` prefix from the path. let path = { @@ -45,7 +45,7 @@ where })?; // fetch the linked node from the directory_service - match directory_service.get(&digest).await? { + match directory_service.as_ref().get(&digest).await? { // If we didn't get the directory node that's linked, that's a store inconsistency, bail out! None => { warn!("directory {} does not exist", digest); @@ -86,9 +86,7 @@ where #[cfg(test)] mod tests { use std::path::PathBuf; - use std::sync::Arc; - use crate::directoryservice::DirectoryService; use crate::fixtures::{DIRECTORY_COMPLICATED, DIRECTORY_WITH_KEEP}; use crate::utils::gen_directory_service; @@ -96,7 +94,7 @@ mod tests { #[tokio::test] async fn test_descend_to() { - let directory_service: Arc = gen_directory_service().into(); + let directory_service = gen_directory_service(); let mut handle = directory_service.put_multiple_start(); handle @@ -128,7 +126,7 @@ mod tests { // traversal to an empty subpath should return the root node. { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from(""), ) @@ -141,7 +139,7 @@ mod tests { // traversal to `keep` should return the node for DIRECTORY_WITH_KEEP { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("keep"), ) @@ -154,7 +152,7 @@ mod tests { // traversal to `keep/.keep` should return the node for the .keep file { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("keep/.keep"), ) @@ -167,7 +165,7 @@ mod tests { // traversal to `keep/.keep` should return the node for the .keep file { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("/keep/.keep"), ) @@ -180,7 +178,7 @@ mod tests { // traversal to `void` should return None (doesn't exist) { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("void"), ) @@ -193,7 +191,7 @@ mod tests { // traversal to `void` should return None (doesn't exist) { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("//v/oid"), ) @@ -207,7 +205,7 @@ mod tests { // reached, as keep/.keep already is a file) { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("keep/.keep/foo"), ) @@ -220,7 +218,7 @@ mod tests { // traversal to a subpath of '/' should return the root node. { let resp = descend_to( - directory_service.clone(), + &directory_service, node_directory_complicated.clone(), &PathBuf::from("/"), ) diff --git a/tvix/glue/src/tvix_store_io.rs b/tvix/glue/src/tvix_store_io.rs index 56e3feb674..178bf6c777 100644 --- a/tvix/glue/src/tvix_store_io.rs +++ b/tvix/glue/src/tvix_store_io.rs @@ -92,8 +92,7 @@ where // with the root_node and sub_path, descend to the node requested. Ok(self.tokio_handle.block_on({ async { - directoryservice::descend_to(self.directory_service.as_ref(), root_node, sub_path) - .await + directoryservice::descend_to(&self.directory_service, root_node, sub_path).await } })?) } -- cgit 1.4.1