1use thiserror::Error;
2
3pub type PcapResult<T> = Result<T, PcapError>;
5
6#[derive(Error, Debug)]
8pub enum PcapError {
9 #[error("Need more bytes")]
11 IncompleteBuffer,
12
13 #[error("Error reading bytes")]
15 IoError(#[source] std::io::Error),
16
17 #[error("Invalid field value: {0}")]
19 InvalidField(&'static str),
20
21 #[error("UTF8 error")]
23 Utf8Error(#[source] std::str::Utf8Error),
24
25 #[error("UTF8 error")]
27 FromUtf8Error(#[source] std::string::FromUtf8Error),
28
29 #[error("No corresponding interface id: {0}")]
31 InvalidInterfaceId(u32),
32}
33
34impl From<std::str::Utf8Error> for PcapError {
35 fn from(err: std::str::Utf8Error) -> Self {
36 PcapError::Utf8Error(err)
37 }
38}
39
40impl From<std::string::FromUtf8Error> for PcapError {
41 fn from(err: std::string::FromUtf8Error) -> Self {
42 PcapError::FromUtf8Error(err)
43 }
44}