From 60fb9a269448b58165642d0c9f1a214c9164fb2a Mon Sep 17 00:00:00 2001 From: Erin van der Veen Date: Wed, 13 Mar 2024 16:18:09 +0100 Subject: [PATCH] temp --- src/lib.rs | 56 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index b7617eb..92cb3b4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -59,19 +59,27 @@ pub struct ProcessingArgs<'a> { pub message_tx: Option>, } +fn send_message( + message_tx: &Option>, + status: message::Status, + id: usize, + path: String, +) { + if let Some(tx) = message_tx { + tx.send(message::Message { status, id, path }).unwrap(); + } +} + fn process(args: ProcessingArgs) -> Result<()> { log::debug!("Processing derivation: {:?}", args.attribute_path); // Inform the calling thread that we are starting to process the derivation - if let Some(message_tx) = &args.message_tx { - message_tx - .send(message::Message { - status: message::Status::Started, - id: rayon::current_thread_index().unwrap(), - path: args.attribute_path.clone(), - }) - .unwrap(); - } + send_message( + &args.message_tx, + message::Status::Started, + rayon::current_thread_index().unwrap(), + args.attribute_path.clone(), + ); let description = nix::describe_derivation( args.flake_ref, @@ -84,15 +92,12 @@ fn process(args: ProcessingArgs) -> Result<()> { )?; // Inform the calling thread that we have described the derivation - if let Some(message_tx) = &args.message_tx { - message_tx - .send(message::Message { - status: message::Status::Completed, - id: rayon::current_thread_index().unwrap(), - path: description.attribute_path.clone(), - }) - .unwrap(); - } + send_message( + &args.message_tx, + message::Status::Completed, + rayon::current_thread_index().unwrap(), + description.attribute_path.clone(), + ); // Send the DerivationDescription to the main thread args.tx.send(description.clone())?; @@ -125,15 +130,12 @@ fn process(args: ProcessingArgs) -> Result<()> { // Inform calling thread that the derivation was skipped if // requested. - if let Some(message_tx) = &args.message_tx { - message_tx - .send(message::Message { - status: message::Status::Skipped, - id: rayon::current_thread_index().unwrap(), - path: build_input.attribute_path.clone(), - }) - .unwrap(); - } + send_message( + &args.message_tx, + message::Status::Skipped, + rayon::current_thread_index().unwrap(), + build_input.attribute_path.clone(), + ); return Ok(()); }