// src/macros.rs #[macro_export] macro_rules! check_shutdown { ($shutdown_flag:expr) => { if $shutdown_flag.load(std::sync::atomic::Ordering::SeqCst) { logger::log_warn("Shutdown detected, stopping processes").await; return Ok(()); } }; } /// Mark incomplete state on shutdown /// Usage: mark_incomplete_on_shutdown!(&manager, "step_name", content_ref, DataStage::Data, &shutdown_flag)?; #[macro_export] macro_rules! mark_incomplete_on_shutdown { ($manager:expr, $step_name:expr, $content_ref:expr, $data_stage:expr, $shutdown_flag:expr) => { if $shutdown_flag.load(std::sync::atomic::Ordering::SeqCst) { $manager .mark_incomplete( $step_name.to_string(), $content_ref, $data_stage, "Incomplete due to shutdown".to_string(), ) .await?; } }; }