runmat_test/result/
diagnostic.rs1use serde::{Deserialize, Serialize};
2
3use crate::descriptor::SourceDescriptor;
4use crate::lifecycle::ExecutionPhase;
5
6#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
7pub struct Diagnostic {
8 pub identifier: String,
9 pub message: String,
10 pub severity: DiagnosticSeverity,
11 pub phase: ExecutionPhase,
12 pub source: Option<SourceDescriptor>,
13 #[serde(default)]
14 pub details: Vec<DiagnosticDetail>,
15}
16
17#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize, Deserialize)]
18#[serde(rename_all = "snake_case")]
19pub enum DiagnosticSeverity {
20 Information,
21 Warning,
22 Error,
23}
24
25#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
26pub struct DiagnosticDetail {
27 pub label: String,
28 pub value: String,
29}