use thiserror::Error;
#[derive(Debug, Error, PartialEq)]
pub enum ArpError {
#[error("Invalid ARP packet length: expected at least {expected} bytes, got {actual} bytes")]
InvalidLength { expected: usize, actual: usize },
#[error("Unsupported hardware type: {0}")]
UnsupportedHardwareType(u16),
#[error("Unsupported protocol type: {0:#06x}")]
UnsupportedProtocolType(u16),
#[error("Invalid hardware length: expected {expected}, got {actual}")]
InvalidHardwareLength { expected: u8, actual: u8 },
#[error("Invalid protocol length: expected {expected}, got {actual}")]
InvalidProtocolLength { expected: u8, actual: u8 },
#[error("Unsupported ARP operation: {0}")]
UnsupportedOperation(u16),
}