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 27 28 29
use thiserror::Error; use crate::packet::{ErrorMessage, NetlinkMessage, RtnlMessage}; #[derive(Clone, Eq, PartialEq, Debug, Error)] pub enum Error { #[error("Received an unexpected message {0:?}")] UnexpectedMessage(NetlinkMessage<RtnlMessage>), #[error("Received a netlink error message {0}")] NetlinkError(ErrorMessage), #[error("A netlink request failed")] RequestFailed, #[error("Namespace error {0}")] NamespaceError(String), #[error( "Received a link message (RTM_GETLINK, RTM_NEWLINK, RTM_SETLINK or RTMGETLINK) with an invalid hardware address attribute: {0:?}." )] InvalidHardwareAddress(Vec<u8>), #[error("Failed to parse an IP address: {0:?}")] InvalidIp(Vec<u8>), #[error("Failed to parse a network address (IP and mask): {0:?}/{1:?}")] InvalidAddress(Vec<u8>, Vec<u8>), }