use std::{num::ParseIntError, str::Utf8Error}; use crate::element::{Name, NamespaceDeclaration}; #[derive(Debug)] pub enum Error { ReadError(std::io::Error), Utf8Error(Utf8Error), ParseError(String), EntityProcessError(String), // TODO: better choice for failures than string InvalidCharRef(String), DuplicateNameSpaceDeclaration(NamespaceDeclaration), DuplicateAttribute(String), UnqualifiedNamespace(String), MismatchedEndTag(String, String), NotInElement(String), ExtraData(String), } impl From for Error { fn from(e: std::io::Error) -> Self { Self::ReadError(e) } } impl From for Error { fn from(e: Utf8Error) -> Self { Self::Utf8Error(e) } } impl From for Error { fn from(e: ParseIntError) -> Self { Self::InvalidCharRef(e.to_string()) } }