astro_run/types/
results.rs

1use crate::{Id, JobId, StepId, WorkflowId, WorkflowState};
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4
5pub type Time = chrono::DateTime<chrono::Utc>;
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
8pub struct StepRunResult {
9  pub id: StepId,
10  pub state: WorkflowState,
11  pub exit_code: Option<i32>,
12  pub started_at: Option<Time>,
13  pub completed_at: Option<Time>,
14}
15
16#[derive(Serialize, Deserialize, Debug, Clone)]
17pub struct JobRunResult {
18  pub id: JobId,
19  pub state: WorkflowState,
20  pub started_at: Option<Time>,
21  pub completed_at: Option<Time>,
22  pub steps: Vec<StepRunResult>,
23}
24
25#[derive(Serialize, Deserialize, Debug, Clone)]
26pub struct WorkflowRunResult {
27  pub id: WorkflowId,
28  pub state: WorkflowState,
29  pub started_at: Option<Time>,
30  pub completed_at: Option<Time>,
31  pub jobs: HashMap<Id, JobRunResult>,
32}