1pub mod vpr;
2pub mod vsqx3;
3pub mod vsqx4;
4
5pub(crate) mod write_xml;
6
7pub(crate) mod v5to4;
9
10pub(crate) mod v4to5;
12
13use failure::Fail;
14#[derive(Fail, Debug)]
15pub enum Error {
16 #[fail(display = "failed to serialize/deserialize JSON: {}", _0)]
17 SerdeJsonError(serde_json::Error),
18 #[fail(display = "IO Error: {}", _0)]
19 IoError(std::io::Error),
20 #[fail(display = "Zip Error: {}", _0)]
21 ZipError(zip::result::ZipError),
22 #[fail(display = "XML error: {}", _0)]
23 XmlError(quick_xml::Error),
24 #[fail(display = "XML deserialize error: {}", _0)]
25 XmlDeError(quick_xml::DeError),
26}
27
28impl From<serde_json::Error> for Error {
29 fn from(e: serde_json::Error) -> Self {
30 Self::SerdeJsonError(e)
31 }
32}
33
34impl From<std::io::Error> for Error {
35 fn from(e: std::io::Error) -> Self {
36 Self::IoError(e)
37 }
38}
39
40impl From<zip::result::ZipError> for Error {
41 fn from(e: zip::result::ZipError) -> Self {
42 Self::ZipError(e)
43 }
44}
45
46impl From<quick_xml::Error> for Error {
47 fn from(e: quick_xml::Error) -> Self {
48 Self::XmlError(e)
49 }
50}
51
52impl From<quick_xml::DeError> for Error {
53 fn from(e: quick_xml::DeError) -> Self {
54 Self::XmlDeError(e)
55 }
56}
57
58pub type Result<T> = std::result::Result<T, Error>;