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