1use thiserror::Error;
6use xml::reader::Error as XmlReaderError;
7use xml::writer::Error as XmlWriterError;
8
9#[derive(Error, Debug)]
11#[non_exhaustive]
12pub enum Error {
13 #[error("Error writing XML data: {:?}", .0)]
15 WriteXml(#[from] XmlWriterError),
16
17 #[error("Error reading from XML data: {:?}", .0)]
19 ReadXml(#[from] XmlReaderError),
20
21 #[error("Invalid data: {:?}", .0)]
23 InvalidData(String),
24
25 #[error("Missing data: {:?}", .0)]
27 MissingData(String),
28
29 #[error("Invalid data: {:?}", .0)]
31 DuplicateData(String),
32
33 #[error("Unsupported object version")]
35 UnsupportedVersion,
36}
37
38impl Error {
39 pub fn invalid_data(msg: impl ToString) -> Self {
40 Self::InvalidData(msg.to_string())
41 }
42
43 pub fn missing_data(msg: impl ToString) -> Self {
44 Self::MissingData(msg.to_string())
45 }
46}