diff options
Diffstat (limited to 'tvix')
-rw-r--r-- | tvix/castore/src/import.rs | 9 | ||||
-rw-r--r-- | tvix/glue/src/builtins/import.rs | 9 |
2 files changed, 10 insertions, 8 deletions
diff --git a/tvix/castore/src/import.rs b/tvix/castore/src/import.rs index 2e1d4c2af33a..acae8299cc27 100644 --- a/tvix/castore/src/import.rs +++ b/tvix/castore/src/import.rs @@ -143,11 +143,12 @@ where BS: AsRef<dyn BlobService> + Clone, DS: AsRef<dyn DirectoryService>, { - let entries = walk_path_for_ingestion(path)?; - let entries_stream = leveled_entries_to_stream(entries); - pin_mut!(entries_stream); + // produce the leveled-key vector of DirEntry. + let entries_per_depths = walk_path_for_ingestion(path)?; + let direntry_stream = leveled_entries_to_stream(entries_per_depths); + pin_mut!(direntry_stream); - ingest_entries(blob_service, directory_service, entries_stream).await + ingest_entries(blob_service, directory_service, direntry_stream).await } /// The Merkle invariant checker is an internal structure to perform bookkeeping of all directory diff --git a/tvix/glue/src/builtins/import.rs b/tvix/glue/src/builtins/import.rs index 3a2dea953fd3..800f8ddc17c2 100644 --- a/tvix/glue/src/builtins/import.rs +++ b/tvix/glue/src/builtins/import.rs @@ -3,6 +3,7 @@ use crate::builtins::errors::ImportError; use futures::pin_mut; use std::path::Path; +use tvix_castore::import::leveled_entries_to_stream; use tvix_eval::{ builtin_macros::builtins, generators::{self, GenCo}, @@ -17,6 +18,7 @@ async fn filtered_ingest( path: &Path, filter: Option<&Value>, ) -> Result<tvix_castore::proto::node::Node, ErrorKind> { + // produce the leveled-key vector of DirEntry. let mut entries_per_depths: Vec<Vec<walkdir::DirEntry>> = vec![Vec::new()]; let mut it = walkdir::WalkDir::new(path) .follow_links(false) @@ -99,13 +101,12 @@ async fn filtered_ingest( // FUTUREWORK: determine when it's the right moment to flush a level to the ingester. } - let entries_stream = tvix_castore::import::leveled_entries_to_stream(entries_per_depths); - - pin_mut!(entries_stream); + let direntry_stream = leveled_entries_to_stream(entries_per_depths); + pin_mut!(direntry_stream); state.tokio_handle.block_on(async { state - .ingest_entries(entries_stream) + .ingest_entries(direntry_stream) .await .map_err(|err| ErrorKind::IO { path: Some(path.to_path_buf()), |