Line data Source code
1 : use std::fmt;
2 :
3 0 : #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
4 : pub enum Error {
5 : ReadError,
6 : NotFound,
7 : NotImplemented,
8 : NotSupported,
9 : Corrupted,
10 : ConversionError,
11 : ReadOutOfBound,
12 : ASN1BadTag,
13 : FileError,
14 : FileFormatError,
15 : ParsingError,
16 : BuildError,
17 : DataTooLarge,
18 : RequireExtendedVersion,
19 : Unknown(u32),
20 : }
21 :
22 : impl From<u32> for Error {
23 8 : fn from(value: u32) -> Self {
24 8 : match value {
25 0 : 0x00000001 => Error::ReadError,
26 0 : 0x00000002 => Error::NotFound,
27 0 : 0x00000003 => Error::NotImplemented,
28 0 : 0x00000004 => Error::NotSupported,
29 0 : 0x00000005 => Error::Corrupted,
30 8 : 0x00000006 => Error::ConversionError,
31 0 : 0x00000007 => Error::ReadOutOfBound,
32 0 : 0x00000008 => Error::ASN1BadTag,
33 0 : 0x00000009 => Error::FileError,
34 0 : 0x0000000a => Error::FileFormatError,
35 0 : 0x0000000b => Error::ParsingError,
36 0 : 0x0000000c => Error::BuildError,
37 0 : 0x0000000d => Error::DataTooLarge,
38 0 : 0x0000000e => Error::RequireExtendedVersion,
39 0 : _ => Error::Unknown(value),
40 :
41 : }
42 8 : }
43 : }
44 :
45 : impl fmt::Display for Error {
46 0 : fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
47 0 : write!(f, "LIEF Error Occurred!")
48 0 : }
49 : }
|