pub use std::io::ErrorKind;
use std::fmt;
#[derive(Clone)]
pub struct StdinError {
pub kind : ErrorKind,
}
impl StdinError {
pub fn new(kind : ErrorKind) -> StdinError {
StdinError {
kind,
}
}
}
pub fn to_err(e : StdinError) -> super::Error {
use super::{Error, ErrorKind};
Error::new(ErrorKind::StdinError(e))
}
impl fmt::Display for StdinError {
fn fmt(&self, f : &mut fmt::Formatter) -> fmt::Result {
use self::ErrorKind::*;
match self.kind {
NotFound => panic!("Invalid error"),
PermissionDenied => panic!("Invalid error"),
ConnectionRefused => panic!("Invalid error"),
ConnectionReset => panic!("Invalid error"),
ConnectionAborted => panic!("Invalid error"),
NotConnected => panic!("Invalid error"),
AddrInUse => panic!("Invalid error"),
AddrNotAvailable => panic!("Invalid error"),
BrokenPipe => panic!("Invalid error"),
AlreadyExists => panic!("Invalid error"),
WouldBlock => panic!("Invalid error"),
InvalidInput => panic!("Invalid parameters"),
InvalidData => panic!("Invalid parameters"),
TimedOut => write!(f, "stdin operation timed out"),
WriteZero => panic!("Invalid error"),
Interrupted => write!(f, "stdin operation interrupted"),
Other => write!(f, "stdin unknown error"),
UnexpectedEof => write!(f, "stdin unexpected EOF"),
_ => write!(f, "Unknown error")
}
}
}