use arp::ArpError;
use thiserror::Error;
pub mod arp;
pub mod ipv4;
pub mod ipv6;
#[derive(Debug, Error)]
pub enum InternetError {
#[error("ARP error: {0}")]
ArpError(#[from] ArpError),
#[error("Invalid packet length: expected at least {expected} bytes, got {actual} bytes")]
InvalidLength { expected: usize, actual: usize },
#[error("Empty packet")]
EmptyPacket,
#[error("Unsupported transport protocol")]
UnsupportedProtocol,
#[error("Invalid packet format: {0}")]
InvalidFormat(String),
#[error("Invalid checksum")]
InvalidChecksum,
}