use thiserror::Error;
#[derive(Error, Debug)]
pub enum Error {
#[error(transparent)]
Core(#[from] egml_core::Error),
#[error(transparent)]
Xml(#[from] quick_xml::Error),
#[error(transparent)]
XmlDe(#[from] quick_xml::DeError),
#[error(transparent)]
XmlSe(#[from] quick_xml::SeError),
#[error("required GML element '{0}' was not found in the XML input")]
ElementNotFound(String),
#[error(
"only 3-D coordinates (srsDimension=\"3\") are supported; 2-D GML input is not accepted"
)]
UnsupportedDimension(),
#[error("required child elements are absent from '{0}'")]
MissingElements(String),
#[error("missing linear ring")]
MissingLinearRing(),
#[error("missing surface kind for `{0}`")]
MissingSurfaceKind(String),
#[error("XLinks are not supported yet")]
UnsupportedXLink(),
}