pub trait IpExt: EthernetIpExt + IcmpIpExt {
type Packet<B: SplitByteSlice>: IpPacket<B, Self, Builder = Self::PacketBuilder> + GenericOverIp<Self, Type = Self::Packet<B>> + GenericOverIp<Ipv4, Type = Ipv4Packet<B>> + GenericOverIp<Ipv6, Type = Ipv6Packet<B>>;
type PacketRaw<B: SplitByteSlice>: IpPacketRaw<B, Self> + GenericOverIp<Self, Type = Self::PacketRaw<B>> + GenericOverIp<Ipv4, Type = Ipv4PacketRaw<B>> + GenericOverIp<Ipv6, Type = Ipv6PacketRaw<B>>;
type PacketBuilder: IpPacketBuilder<Self> + Eq;
const MIN_HEADER_LENGTH: usize;
}
Expand description
An extension trait to the Ip
trait adding associated types relevant for
packet parsing and serialization.
Required Associated Constants§
Sourceconst MIN_HEADER_LENGTH: usize
const MIN_HEADER_LENGTH: usize
Minimal IP header size.
Required Associated Types§
Sourcetype Packet<B: SplitByteSlice>: IpPacket<B, Self, Builder = Self::PacketBuilder> + GenericOverIp<Self, Type = Self::Packet<B>> + GenericOverIp<Ipv4, Type = Ipv4Packet<B>> + GenericOverIp<Ipv6, Type = Ipv6Packet<B>>
type Packet<B: SplitByteSlice>: IpPacket<B, Self, Builder = Self::PacketBuilder> + GenericOverIp<Self, Type = Self::Packet<B>> + GenericOverIp<Ipv4, Type = Ipv4Packet<B>> + GenericOverIp<Ipv6, Type = Ipv6Packet<B>>
An IP packet type for this IP version.
Sourcetype PacketRaw<B: SplitByteSlice>: IpPacketRaw<B, Self> + GenericOverIp<Self, Type = Self::PacketRaw<B>> + GenericOverIp<Ipv4, Type = Ipv4PacketRaw<B>> + GenericOverIp<Ipv6, Type = Ipv6PacketRaw<B>>
type PacketRaw<B: SplitByteSlice>: IpPacketRaw<B, Self> + GenericOverIp<Self, Type = Self::PacketRaw<B>> + GenericOverIp<Ipv4, Type = Ipv4PacketRaw<B>> + GenericOverIp<Ipv6, Type = Ipv6PacketRaw<B>>
A raw IP packet type for this IP version.
Sourcetype PacketBuilder: IpPacketBuilder<Self> + Eq
type PacketBuilder: IpPacketBuilder<Self> + Eq
An IP packet builder type for the IP version.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.