1use std::error::Error as StdError;
2use std::fmt::{self, Display, Formatter};
3use std::io;
4
5#[derive(Debug, Clone, PartialEq)]
9pub enum HeaderError {
10 InvalidSignature,
12 UnsupportedVersion,
14 InvalidBlockSize,
16}
17
18impl Display for HeaderError {
19 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
20 f.write_str(match self {
21 HeaderError::InvalidSignature => "invalid file signature",
22 HeaderError::UnsupportedVersion => "unsupported bzip2 version",
23 HeaderError::InvalidBlockSize => "invalid block-size",
24 })
25 }
26}
27
28impl StdError for HeaderError {}
29
30impl From<HeaderError> for io::Error {
31 fn from(err: HeaderError) -> io::Error {
32 io::Error::new(io::ErrorKind::InvalidData, err)
33 }
34}