pub struct Ipv4PacketBuilderWithOptions<'a, I> { /* private fields */ }
Expand description
A PacketBuilder for Ipv4 Packets but with options.
Implementations§
Source§impl<'a, I> Ipv4PacketBuilderWithOptions<'a, I>
impl<'a, I> Ipv4PacketBuilderWithOptions<'a, I>
Sourcepub fn new<T: IntoIterator<IntoIter = I>>(
prefix_builder: Ipv4PacketBuilder,
options: T,
) -> Result<Ipv4PacketBuilderWithOptions<'a, I>, Ipv4OptionsTooLongError>
pub fn new<T: IntoIterator<IntoIter = I>>( prefix_builder: Ipv4PacketBuilder, options: T, ) -> Result<Ipv4PacketBuilderWithOptions<'a, I>, Ipv4OptionsTooLongError>
Creates a new IPv4 packet builder without options.
Returns Err
if the packet header would exceed the maximum length of
MAX_HDR_LEN
. This happens if the options
, when serialized, would
exceed MAX_OPTIONS_LEN
.
Sourcepub fn prefix_builder(&self) -> &Ipv4PacketBuilder
pub fn prefix_builder(&self) -> &Ipv4PacketBuilder
Returns a reference to the prefix builder.
Sourcepub fn prefix_builder_mut(&mut self) -> &mut Ipv4PacketBuilder
pub fn prefix_builder_mut(&mut self) -> &mut Ipv4PacketBuilder
Returns a mutable reference to the prefix builder.
Sourcepub fn with_fragment_options(
self,
first_fragment: bool,
) -> Ipv4PacketBuilderWithOptions<'a, impl Iterator<Item: Borrow<Ipv4Option<'a>>> + Clone>
pub fn with_fragment_options( self, first_fragment: bool, ) -> Ipv4PacketBuilderWithOptions<'a, impl Iterator<Item: Borrow<Ipv4Option<'a>>> + Clone>
Maps this builder optionally maintaining only the options that are meant to be copied on all fragments.
If first_fragment
is true
, all options are maintained, otherwise
only the options meant to be copied on all fragments will be yielded.
Source§impl<'a, B> Ipv4PacketBuilderWithOptions<'a, RecordsIter<'a, B, Ipv4OptionsImpl>>
impl<'a, B> Ipv4PacketBuilderWithOptions<'a, RecordsIter<'a, B, Ipv4OptionsImpl>>
Sourcepub fn new_with_records_iter(
prefix_builder: Ipv4PacketBuilder,
iter: RecordsIter<'a, B, Ipv4OptionsImpl>,
) -> Self
pub fn new_with_records_iter( prefix_builder: Ipv4PacketBuilder, iter: RecordsIter<'a, B, Ipv4OptionsImpl>, ) -> Self
Creates a new Ipv4PacketBuilderWithOptions
with a known-to-be-valid
iterator of IPv4 options records.
Trait Implementations§
Source§impl<'a, I: Clone> Clone for Ipv4PacketBuilderWithOptions<'a, I>
impl<'a, I: Clone> Clone for Ipv4PacketBuilderWithOptions<'a, I>
Source§fn clone(&self) -> Ipv4PacketBuilderWithOptions<'a, I>
fn clone(&self) -> Ipv4PacketBuilderWithOptions<'a, I>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'a, I: Debug> Debug for Ipv4PacketBuilderWithOptions<'a, I>
impl<'a, I: Debug> Debug for Ipv4PacketBuilderWithOptions<'a, I>
Source§impl<'a, Item> IpPacketBuilder<Ipv4> for Ipv4PacketBuilderWithOptions<'a, Iter<'a, Item>>
impl<'a, Item> IpPacketBuilder<Ipv4> for Ipv4PacketBuilderWithOptions<'a, Iter<'a, Item>>
Source§fn new(src_ip: Ipv4Addr, dst_ip: Ipv4Addr, ttl: u8, proto: Ipv4Proto) -> Self
fn new(src_ip: Ipv4Addr, dst_ip: Ipv4Addr, ttl: u8, proto: Ipv4Proto) -> Self
Returns a new packet builder for an associated IP version with the given
given source and destination IP addresses, TTL (IPv4)/Hop Limit (IPv4)
and Protocol Number.
Source§fn set_src_ip(&mut self, addr: Ipv4Addr)
fn set_src_ip(&mut self, addr: Ipv4Addr)
Sets the source IP address for the builder.
Source§fn set_dst_ip(&mut self, addr: Ipv4Addr)
fn set_dst_ip(&mut self, addr: Ipv4Addr)
Sets the destination IP address for the builder.
Source§fn set_dscp_and_ecn(&mut self, dscp_and_ecn: DscpAndEcn)
fn set_dscp_and_ecn(&mut self, dscp_and_ecn: DscpAndEcn)
Set DSCP & ECN fields.
Source§impl<'a, I> PacketBuilder for Ipv4PacketBuilderWithOptions<'a, I>
impl<'a, I> PacketBuilder for Ipv4PacketBuilderWithOptions<'a, I>
Auto Trait Implementations§
impl<'a, I> Freeze for Ipv4PacketBuilderWithOptions<'a, I>where
I: Freeze,
impl<'a, I> RefUnwindSafe for Ipv4PacketBuilderWithOptions<'a, I>where
I: RefUnwindSafe,
impl<'a, I> Send for Ipv4PacketBuilderWithOptions<'a, I>where
I: Send,
impl<'a, I> Sync for Ipv4PacketBuilderWithOptions<'a, I>where
I: Sync,
impl<'a, I> Unpin for Ipv4PacketBuilderWithOptions<'a, I>where
I: Unpin,
impl<'a, I> UnwindSafe for Ipv4PacketBuilderWithOptions<'a, I>where
I: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)