1use serde_json::Value;
2
3#[derive(Debug, Clone, Copy, PartialEq)]
4pub struct Position {
5 pub line: u32,
6 pub character: u32,
7}
8
9#[derive(Debug, Clone, Copy, PartialEq)]
10pub struct Range {
11 pub start: Position,
12 pub end: Position,
13}
14
15#[derive(Debug, Clone, Copy, PartialEq)]
16pub enum Severity {
17 Error,
18 Warning,
19}
20
21#[derive(Debug, Clone)]
22pub struct Diagnostic {
23 pub range: Range,
24 pub severity: Severity,
25 pub code: String,
26 pub message: String,
27 pub data: Option<Value>,
28}
29
30#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
31pub enum LanguageMode {
32 #[default]
33 Nonstrict,
34 Strict,
35}