Skip to main content

otto_cli/
model.rs

1use serde::{Deserialize, Serialize};
2use time::OffsetDateTime;
3
4#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
5#[serde(rename_all = "lowercase")]
6pub enum RunSource {
7    Task,
8    Inline,
9}
10
11#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
12#[serde(rename_all = "lowercase")]
13pub enum RunStatus {
14    Success,
15    Failed,
16}
17
18#[derive(Debug, Clone, Serialize, Deserialize)]
19pub struct RunRecord {
20    pub id: String,
21    pub name: String,
22    pub source: RunSource,
23    pub command_preview: String,
24    #[serde(with = "time::serde::rfc3339")]
25    pub started_at: OffsetDateTime,
26    pub duration_ms: i64,
27    pub exit_code: i32,
28    pub status: RunStatus,
29    #[serde(skip_serializing_if = "Option::is_none")]
30    pub stderr_tail: Option<String>,
31}