Trait FilterIpExt

Source
pub trait FilterIpExt: IpExt {
    type FilterIpPacket<B: SplitByteSliceMut>: IpPacket<Self>;
    type FilterIpPacketRaw<B: SplitByteSliceMut>: IpPacket<Self>;

    // Required methods
    fn as_filter_packet<B: SplitByteSliceMut>(
        packet: &mut Self::Packet<B>,
    ) -> &mut Self::FilterIpPacket<B>;
    fn as_filter_packet_owned<B: SplitByteSliceMut>(
        packet: Self::Packet<B>,
    ) -> Self::FilterIpPacket<B>;
    fn as_filter_packet_raw_owned<B: SplitByteSliceMut>(
        packet: Self::PacketRaw<B>,
    ) -> Self::FilterIpPacketRaw<B>;
}
Expand description

An IP extension trait for the filtering crate.

Required Associated Types§

Source

type FilterIpPacket<B: SplitByteSliceMut>: IpPacket<Self>

A marker type to add an IpPacket bound to [Self::Packet].

Source

type FilterIpPacketRaw<B: SplitByteSliceMut>: IpPacket<Self>

A marker type to add an IpPacket bound to [Self::PacketRaw].

Required Methods§

Source

fn as_filter_packet<B: SplitByteSliceMut>( packet: &mut Self::Packet<B>, ) -> &mut Self::FilterIpPacket<B>

A no-op conversion to help the compiler identify that [Self::Packet] actually implements IpPacket.

Source

fn as_filter_packet_owned<B: SplitByteSliceMut>( packet: Self::Packet<B>, ) -> Self::FilterIpPacket<B>

The same as FilterIpExt::as_filter_packet, but for owned values.

Source

fn as_filter_packet_raw_owned<B: SplitByteSliceMut>( packet: Self::PacketRaw<B>, ) -> Self::FilterIpPacketRaw<B>

The same as FilterIpExt::as_filter_packet_owned, but for owned raw values.

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.

Implementations on Foreign Types§

Source§

impl FilterIpExt for Ipv4

Source§

type FilterIpPacket<B: SplitByteSliceMut> = Ipv4Packet<B>

Source§

type FilterIpPacketRaw<B: SplitByteSliceMut> = Ipv4PacketRaw<B>

Source§

fn as_filter_packet<B: SplitByteSliceMut>( packet: &mut Ipv4Packet<B>, ) -> &mut Ipv4Packet<B>

Source§

fn as_filter_packet_owned<B: SplitByteSliceMut>( packet: Self::Packet<B>, ) -> Self::FilterIpPacket<B>

Source§

fn as_filter_packet_raw_owned<B: SplitByteSliceMut>( packet: Self::PacketRaw<B>, ) -> Self::FilterIpPacketRaw<B>

Source§

impl FilterIpExt for Ipv6

Source§

type FilterIpPacket<B: SplitByteSliceMut> = Ipv6Packet<B>

Source§

type FilterIpPacketRaw<B: SplitByteSliceMut> = Ipv6PacketRaw<B>

Source§

fn as_filter_packet<B: SplitByteSliceMut>( packet: &mut Ipv6Packet<B>, ) -> &mut Ipv6Packet<B>

Source§

fn as_filter_packet_owned<B: SplitByteSliceMut>( packet: Self::Packet<B>, ) -> Self::FilterIpPacket<B>

Source§

fn as_filter_packet_raw_owned<B: SplitByteSliceMut>( packet: Self::PacketRaw<B>, ) -> Self::FilterIpPacketRaw<B>

Implementors§