1use thiserror::Error;
4
5pub type Result<T> = std::result::Result<T, ParseError>;
7
8#[derive(Error, Debug)]
10pub enum ParseError {
11 #[error("XML deserialization error: {message}")]
13 XmlError {
14 message: String,
16 location: Option<String>,
18 },
19
20 #[error("Invalid date format: {0}")]
22 InvalidDate(String),
23
24 #[error("Invalid decimal format: {0}")]
26 InvalidDecimal(String),
27
28 #[error("Missing required field: {field} in {context}")]
30 MissingField {
31 field: String,
33 context: String,
35 },
36
37 #[error("Unknown enum variant: {variant} for type {enum_type}")]
39 UnknownEnumVariant {
40 variant: String,
42 enum_type: String,
44 },
45
46 #[error("Unsupported FLEX schema version: {0}")]
48 UnsupportedSchemaVersion(String),
49
50 #[error("IO error: {0}")]
52 Io(#[from] std::io::Error),
53}