Skip to main content

allium_parser/
diagnostic.rs

1use serde::Serialize;
2
3use crate::Span;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
6pub enum Severity {
7    Error,
8    Warning,
9}
10
11#[derive(Debug, Clone, Serialize)]
12pub struct Diagnostic {
13    pub span: Span,
14    pub message: String,
15    pub severity: Severity,
16}
17
18impl Diagnostic {
19    pub fn error(span: Span, message: impl Into<String>) -> Self {
20        Self { span, message: message.into(), severity: Severity::Error }
21    }
22
23    pub fn warning(span: Span, message: impl Into<String>) -> Self {
24        Self { span, message: message.into(), severity: Severity::Warning }
25    }
26}