1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
use std::error::Error;
use std::fmt;
use crate::common::FilePosition;
use super::fqtn::FQTN;
#[derive(Debug)]
pub enum ValidationError {
DuplicateIdentifier {
position: FilePosition,
identifier: String,
},
NoSuchType {
position: FilePosition,
fqtn: FQTN,
},
GenericsMissmatch {
position: FilePosition,
fqtn: FQTN,
},
FieldsetExtendsNonStruct {
position: FilePosition,
fieldset: FQTN,
r#struct: FQTN,
},
NoSuchField {
position: FilePosition,
fieldset: FQTN,
r#struct: FQTN,
field: String,
},
}
impl fmt::Display for ValidationError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{:?}", self)
}
}
impl Error for ValidationError {}