#[cfg_attr(
feature = "ptp",
doc = "
The main use is obtaining timestamps for frames using [`EthernetDMA::poll_timestamp`](crate::EthernetDMA::poll_timestamp)
"
)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Debug, PartialEq, Clone)]
pub struct PacketId(pub u32);
impl PacketId {
pub const INIT: Option<Self> = None;
}
impl From<u32> for PacketId {
fn from(value: u32) -> Self {
Self(value)
}
}
#[cfg(all(feature = "ptp", feature = "smoltcp-phy"))]
impl From<smoltcp::phy::PacketMeta> for PacketId {
fn from(value: smoltcp::phy::PacketMeta) -> Self {
Self(value.id)
}
}
#[cfg(all(feature = "ptp", feature = "smoltcp-phy"))]
impl From<PacketId> for smoltcp::phy::PacketMeta {
fn from(value: PacketId) -> Self {
let mut meta = smoltcp::phy::PacketMeta::default();
meta.id = value.0;
meta
}
}