Skip to main content

runmat_test/result/
diagnostic.rs

1use 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}