astro_run/types/
results.rs1use 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}