1use std::fmt;
2
3#[derive(Clone, Debug, PartialEq, Eq)]
4pub struct SeqError {
5 pub file: String,
6
7 pub line: usize,
8
9 pub col: usize,
10
11 pub message: String,
12}
13
14impl SeqError {
15 pub fn new(
16 file: impl Into<String>,
17 line: usize,
18 col: usize,
19 message: impl Into<String>,
20 ) -> Self {
21 Self {
22 file: file.into(),
23 line,
24 col,
25 message: message.into(),
26 }
27 }
28}
29
30impl fmt::Display for SeqError {
31 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
32 write!(
33 f,
34 "{}:{}:{}: {}",
35 self.file, self.line, self.col, self.message
36 )
37 }
38}
39
40impl std::error::Error for SeqError {}