use actionqueue_core::budget::BudgetConsumption;
use actionqueue_core::ids::{AttemptId, RunId, TaskId};
#[cfg(feature = "budget")]
use actionqueue_executor_local::handler::CancellationContext;
use actionqueue_executor_local::types::ExecutorResponse;
#[derive(Debug)]
pub(crate) struct WorkerResult {
pub run_id: RunId,
pub attempt_id: AttemptId,
pub response: ExecutorResponse,
pub max_attempts: u32,
pub attempt_number: u32,
#[cfg_attr(not(feature = "budget"), allow(dead_code))]
pub consumption: Vec<BudgetConsumption>,
}
#[derive(Debug)]
pub(crate) struct InFlightRun {
pub run_id: RunId,
pub attempt_id: AttemptId,
pub task_id: TaskId,
pub lease_expiry: u64,
pub attempt_number: u32,
pub max_attempts: u32,
#[cfg(feature = "budget")]
pub cancellation_context: Option<CancellationContext>,
}