diff --git a/Cargo.toml b/Cargo.toml index 3bb4603..09c56bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -21,6 +21,7 @@ std = [] serde_std = ["std", "serde/std"] [dependencies] +bincode = { version = "2", optional = true } serde = { version = "^1.0", default-features = false, features = ["derive"], optional = true } [dev-dependencies] diff --git a/src/addr.rs b/src/addr.rs index d761bdd..bc422a5 100644 --- a/src/addr.rs +++ b/src/addr.rs @@ -4,6 +4,7 @@ use crate::{parser, MacAddr6, MacAddr8, ParseError}; /// A MAC address, either in *EUI-48* or *EUI-64* format. #[derive(Debug, Hash, Eq, PartialEq, Ord, PartialOrd, Copy, Clone)] +#[cfg_attr(feature = "bincode", derive(bincode::Encode, bincode::Decode))] pub enum MacAddr { V6(MacAddr6), V8(MacAddr8), diff --git a/src/addr6.rs b/src/addr6.rs index 289b9d7..7b4bf7b 100644 --- a/src/addr6.rs +++ b/src/addr6.rs @@ -5,6 +5,7 @@ use crate::parser; /// MAC address in *EUI-48* format. #[repr(C)] #[derive(Debug, Default, Hash, Eq, PartialEq, Ord, PartialOrd, Copy, Clone)] +#[cfg_attr(feature = "bincode", derive(bincode::Encode, bincode::Decode))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct MacAddr6([u8; 6]); diff --git a/src/addr8.rs b/src/addr8.rs index 9c33d76..d80dba6 100644 --- a/src/addr8.rs +++ b/src/addr8.rs @@ -5,6 +5,7 @@ use crate::parser; /// MAC address in *EUI-64* format. #[repr(C)] #[derive(Debug, Default, Hash, Eq, PartialEq, Ord, PartialOrd, Copy, Clone)] +#[cfg_attr(feature = "bincode", derive(bincode::Encode, bincode::Decode))] #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))] pub struct MacAddr8([u8; 8]);