diff options
author | Connor Brewster <cbrewster@hey.com> | 2024-05-06T15·53-0500 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-05-06T16·05+0000 |
commit | da9bc274f3a07a461b279b18c6b650b0a2808c39 (patch) | |
tree | ec027f4e2b643ff0a95014b57f29327826291092 /tvix/store/src/nar/import.rs | |
parent | 01a4a2399c2455b672051c1a005dabaf2971025d (diff) |
refactor(tvix): remove usage of async-recursion r/8082
Rust 1.77 supports async recursion as long as there is some form of indirection (ie. `Box::pin`). This removes the need to use the async-recursion crate. Change-Id: Ic9613ab7f32016f0103032a861edff92e2fb8b41 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11596 Reviewed-by: flokli <flokli@flokli.de> Autosubmit: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/store/src/nar/import.rs')
-rw-r--r-- | tvix/store/src/nar/import.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/tvix/store/src/nar/import.rs b/tvix/store/src/nar/import.rs index bfb65629e6b6..cc62c1a4e902 100644 --- a/tvix/store/src/nar/import.rs +++ b/tvix/store/src/nar/import.rs @@ -1,4 +1,3 @@ -use async_recursion::async_recursion; use nix_compat::nar::reader::r#async as nar_reader; use tokio::{io::AsyncBufRead, sync::mpsc, try_join}; use tvix_castore::{ @@ -54,10 +53,9 @@ where Ok(node.rename("".into())) } -#[async_recursion] -async fn produce_nar_inner<'a: 'async_recursion, 'r: 'async_recursion, BS>( +async fn produce_nar_inner<BS>( blob_service: BS, - node: nar_reader::Node<'a, 'r>, + node: nar_reader::Node<'_, '_>, path: PathBuf, tx: mpsc::Sender<Result<IngestionEntry, Error>>, ) -> Result<IngestionEntry, Error> @@ -93,8 +91,13 @@ where path.try_push(&entry.name) .expect("Tvix bug: failed to join name"); - let entry = - produce_nar_inner(blob_service.clone(), entry.node, path, tx.clone()).await?; + let entry = Box::pin(produce_nar_inner( + blob_service.clone(), + entry.node, + path, + tx.clone(), + )) + .await?; tx.send(Ok(entry)).await.map_err(|e| { Error::IO(std::io::Error::new(std::io::ErrorKind::BrokenPipe, e)) |