async_arp/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use thiserror::Error as ThisError;

pub type OpaqueError = Box<dyn std::error::Error + Send + Sync + 'static>;

#[derive(ThisError, Debug)]
pub enum Error {
    #[error("Response timeout")]
    ResponseTimeout,
    #[error("{0}")]
    Opaque(#[from] OpaqueError),
}
pub type Result<T> = std::result::Result<T, Error>;

#[allow(clippy::enum_variant_names)]
#[derive(ThisError, Debug)]
#[non_exhaustive]
pub enum InputBuildError {
    #[error("sender MAC address is required")]
    MissingSenderMac,
    #[error("sender IP address is required")]
    MissingSenderIp,
    #[error("target MAC address is required")]
    MissingTargetMac,
    #[error("target IP address is required")]
    MissingTargetIp,
}