allium_parser/
diagnostic.rs1use 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}