mical_cli_syntax/
syntax_error.rs1use rowan::TextRange;
2use std::{borrow::Cow, fmt};
3
4#[derive(Clone, Debug, PartialEq, Eq, Hash)]
5pub struct SyntaxError {
6 message: Cow<'static, str>,
7 range: TextRange,
8}
9
10impl SyntaxError {
11 pub fn new(message: impl Into<Cow<'static, str>>, range: TextRange) -> Self {
12 Self { message: message.into(), range }
13 }
14
15 pub fn message(&self) -> &str {
16 &self.message
17 }
18
19 pub fn range(&self) -> TextRange {
20 self.range
21 }
22}
23
24impl fmt::Display for SyntaxError {
25 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
26 writeln!(f, "{:?}: {}", self.range, &self.message)
27 }
28}