use std::io::IoError;
use {Error};
#[deriving(Show, Clone, PartialEq)]
pub struct FileError(pub IoError);
impl FileError {
pub fn new(err: IoError) -> FileError { FileError(err) }
pub fn unwrap(self) -> IoError {
let FileError(err) = self;
err
}
}
impl Error for FileError {
fn name(&self) -> &'static str {
let FileError(ref err) = *self;
err.desc
}
fn description(&self) -> Option<&str> {
let FileError(ref err) = *self;
err.detail.as_ref().map(|s| s.as_slice())
}
}
#[deriving(Show)]
pub struct HyperError(pub ::hyper::HttpError);
impl Error for HyperError {
fn name(&self) -> &'static str {
"Hyper Error"
}
}
#[deriving(Show)]
pub struct InvalidAddressError(pub IoError);
impl InvalidAddressError {
pub fn new(err: IoError) -> InvalidAddressError { InvalidAddressError(err) }
}
impl Error for InvalidAddressError {
fn name(&self) -> &'static str {
let InvalidAddressError(ref err) = *self;
err.desc
}
}