1use thiserror::Error as ThisError;
2
3pub type OpaqueError = Box<dyn std::error::Error + Send + Sync + 'static>;
4
5#[derive(ThisError, Debug)]
6pub enum Error {
7 #[error("{0}")]
8 Opaque(#[from] OpaqueError),
9}
10pub type Result<T> = std::result::Result<T, Error>;
11
12#[derive(ThisError, Debug, Clone, Copy)]
13#[error("Response timeout")]
14pub struct ResponseTimeout;
15
16#[allow(clippy::enum_variant_names)]
17#[derive(ThisError, Debug, Clone, Copy)]
18#[non_exhaustive]
19pub enum InputBuildError {
20 #[error("sender MAC address is required")]
21 MissingSenderMac,
22 #[error("sender IP address is required")]
23 MissingSenderIp,
24 #[error("target MAC address is required")]
25 MissingTargetMac,
26 #[error("target IP address is required")]
27 MissingTargetIp,
28}