cabalist_parser/
diagnostic.rs1use crate::span::Span;
4
5#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
7pub enum Severity {
8 Error,
10 Warning,
12 Info,
14}
15
16#[derive(Debug, Clone, PartialEq, Eq)]
18pub struct Diagnostic {
19 pub severity: Severity,
20 pub message: String,
21 pub span: Span,
22}
23
24impl Diagnostic {
25 pub fn error(span: Span, message: impl Into<String>) -> Self {
26 Self {
27 severity: Severity::Error,
28 message: message.into(),
29 span,
30 }
31 }
32
33 pub fn warning(span: Span, message: impl Into<String>) -> Self {
34 Self {
35 severity: Severity::Warning,
36 message: message.into(),
37 span,
38 }
39 }
40
41 pub fn info(span: Span, message: impl Into<String>) -> Self {
42 Self {
43 severity: Severity::Info,
44 message: message.into(),
45 span,
46 }
47 }
48}