Skip to main content

termesh_core/
task.rs

1//! Language-neutral task and diagnostic vocabulary.
2
3use std::path::PathBuf;
4
5use crate::SessionId;
6
7#[derive(Debug, Clone, PartialEq, Eq)]
8pub struct TaskSpec {
9    pub id: String,
10    pub label: String,
11    pub program: String,
12    pub args: Vec<String>,
13    pub cwd: PathBuf,
14}
15
16#[derive(Debug, Clone, Copy, PartialEq, Eq)]
17pub enum TaskOrigin {
18    Human,
19    Agent { session: SessionId },
20}
21
22#[derive(Debug, Clone, Copy, PartialEq, Eq)]
23pub enum TaskStatus {
24    Starting,
25    Running,
26    Succeeded,
27    Failed,
28    Cancelled,
29}
30
31#[derive(Debug, Clone, Copy, PartialEq, Eq)]
32pub enum ProblemSeverity {
33    Error,
34    Warning,
35}
36
37#[derive(Debug, Clone, PartialEq, Eq)]
38pub struct Problem {
39    pub path: PathBuf,
40    pub line: usize,
41    pub column: usize,
42    pub severity: ProblemSeverity,
43    pub message: String,
44}