1// Copyright (c) 2017 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7use std::convert::From;
8use std::io;
9use std::num;
10
11use base64;
12use minidom;
13use jid;
14
15#[derive(Debug)]
16pub enum Error {
17 ParseError(&'static str),
18 IoError(io::Error),
19 XMLError(minidom::Error),
20 Base64Error(base64::DecodeError),
21 ParseIntError(num::ParseIntError),
22 JidParseError(jid::JidParseError),
23}
24
25impl From<io::Error> for Error {
26 fn from(err: io::Error) -> Error {
27 Error::IoError(err)
28 }
29}
30
31impl From<minidom::Error> for Error {
32 fn from(err: minidom::Error) -> Error {
33 Error::XMLError(err)
34 }
35}
36
37impl From<base64::DecodeError> for Error {
38 fn from(err: base64::DecodeError) -> Error {
39 Error::Base64Error(err)
40 }
41}
42
43impl From<num::ParseIntError> for Error {
44 fn from(err: num::ParseIntError) -> Error {
45 Error::ParseIntError(err)
46 }
47}
48
49impl From<jid::JidParseError> for Error {
50 fn from(err: jid::JidParseError) -> Error {
51 Error::JidParseError(err)
52 }
53}