xsd_parser/pipeline/parser/
error.rs1use std::io::Error as IoError;
2use std::path::PathBuf;
3
4use thiserror::Error;
5use url::ParseError as UrlParseError;
6
7use crate::quick_xml::Error as XmlError;
8
9use super::resolver::ResolveRequest;
10
11#[derive(Debug, Error)]
13pub enum Error<E> {
14 #[error("IO Error: {0}")]
16 IoError(#[from] IoError),
17
18 #[error("XML Error: {0}")]
20 XmlError(#[from] XmlError),
21
22 #[error("URL Parse Error: {0}")]
24 UrlParseError(#[from] UrlParseError),
25
26 #[error("Unable to resolve requested resource: {0}")]
28 UnableToResolve(Box<ResolveRequest>),
29
30 #[error("Resolver Error: {0}")]
32 Resolver(E),
33
34 #[error("Invalid file path: {0}!")]
38 InvalidFilePath(PathBuf),
39}
40
41impl<E> Error<E> {
42 pub fn resolver<X: Into<E>>(error: X) -> Self {
44 Self::Resolver(error.into())
45 }
46}