emmylua_parser/parser_error/
mod.rs

1use rowan::TextRange;
2
3use crate::text::SourceRange;
4
5#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6pub enum LuaParseErrorKind {
7    SyntaxError,
8    DocError,
9}
10
11#[derive(Debug, Clone, PartialEq)]
12pub struct LuaParseError {
13    pub kind: LuaParseErrorKind,
14    pub message: String,
15    pub range: TextRange,
16}
17
18impl LuaParseError {
19    pub fn new(kind: LuaParseErrorKind, message: &str, range: TextRange) -> Self {
20        LuaParseError {
21            kind,
22            message: message.to_string(),
23            range,
24        }
25    }
26
27    pub fn syntax_error_from(message: &str, range: SourceRange) -> Self {
28        LuaParseError {
29            kind: LuaParseErrorKind::SyntaxError,
30            message: message.to_string(),
31            range: range.into(),
32        }
33    }
34
35    pub fn doc_error_from(message: &str, range: SourceRange) -> Self {
36        LuaParseError {
37            kind: LuaParseErrorKind::DocError,
38            message: message.to_string(),
39            range: range.into(),
40        }
41    }
42}