#[macro_export] macro_rules! git_spawn { ($repo:expr, $domain:ident -> $body:expr) => {{ let repo_clone = $repo.clone(); tokio::task::spawn_blocking(move || { let $domain = git::GitDomain::from_model(repo_clone)?; $body }) .await .map_err(|e| { crate::error::AppError::InternalServerError(format!("Task join error: {}", e)) })? .map_err(crate::error::AppError::from) }}; }