From 5ffc5037db5b8e75c4d788554c362847e9e0de97 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Wed, 25 Dec 2024 17:50:26 +0100 Subject: [PATCH] xml: Move Error to own module --- crates/xml/src/de.rs | 27 +-------------------------- crates/xml/src/error.rs | 25 +++++++++++++++++++++++++ crates/xml/src/lib.rs | 3 ++- 3 files changed, 28 insertions(+), 27 deletions(-) create mode 100644 crates/xml/src/error.rs diff --git a/crates/xml/src/de.rs b/crates/xml/src/de.rs index 527ead0..cb13bc7 100644 --- a/crates/xml/src/de.rs +++ b/crates/xml/src/de.rs @@ -6,33 +6,8 @@ pub use xml_derive::XmlDocument; pub use xml_derive::XmlRootTag; use quick_xml::events::{BytesStart, Event}; -use thiserror::Error; -#[derive(Debug, Error)] -pub enum XmlDeError { - #[error(transparent)] - QuickXmlError(#[from] quick_xml::Error), - #[error(transparent)] - QuickXmlAttrError(#[from] quick_xml::events::attributes::AttrError), - #[error("Unknown error")] - UnknownError, - #[error("Invalid tag [{0}]{1}. Expected [{2}]{3}")] - InvalidTag(String, String, String, String), - #[error("Missing field {0}")] - MissingField(&'static str), - #[error("End of file, expected closing tags")] - Eof, - #[error("Unsupported xml event: {0}")] - UnsupportedEvent(&'static str), - #[error("{0}")] - Other(String), - #[error("Invalid variant: {0}")] - InvalidVariant(String), - #[error("Invalid field name in {0}: {1}")] - InvalidFieldName(&'static str, String), - #[error(transparent)] - InvalidValue(#[from] crate::value::ParseValueError), -} +use crate::XmlDeError; pub trait XmlDeserialize: Sized { fn deserialize( diff --git a/crates/xml/src/error.rs b/crates/xml/src/error.rs new file mode 100644 index 0000000..f558b6d --- /dev/null +++ b/crates/xml/src/error.rs @@ -0,0 +1,25 @@ +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum XmlDeError { + #[error(transparent)] + QuickXmlError(#[from] quick_xml::Error), + #[error(transparent)] + QuickXmlAttrError(#[from] quick_xml::events::attributes::AttrError), + #[error("Unknown error")] + UnknownError, + #[error("Invalid tag [{0}]{1}. Expected [{2}]{3}")] + InvalidTag(String, String, String, String), + #[error("Missing field {0}")] + MissingField(&'static str), + #[error("End of file, expected closing tags")] + Eof, + #[error("Unsupported xml event: {0}")] + UnsupportedEvent(&'static str), + #[error("Invalid variant: {0}")] + InvalidVariant(String), + #[error("Invalid field name in {0}: {1}")] + InvalidFieldName(&'static str, String), + #[error(transparent)] + InvalidValue(#[from] crate::value::ParseValueError), +} diff --git a/crates/xml/src/lib.rs b/crates/xml/src/lib.rs index 12d65ae..b3cb91b 100644 --- a/crates/xml/src/lib.rs +++ b/crates/xml/src/lib.rs @@ -2,13 +2,14 @@ use quick_xml::events::{BytesStart, Event}; use std::io::BufRead; pub mod de; +mod error; pub mod se; mod value; -pub use de::XmlDeError; pub use de::XmlDeserialize; pub use de::XmlDocument; pub use de::XmlRootTag; +pub use error::XmlDeError; pub use se::XmlSerialize; pub use value::Value;