pub enum Options {
Handshake(HandshakeOptions),
Segment(SegmentOptions),
Reset(ResetOptions),
}
Expand description
Contains all supported TCP options.
Variants§
Handshake(HandshakeOptions)
Options present in a handshake segment.
Segment(SegmentOptions)
Options present in a data/ack segment.
Reset(ResetOptions)
Options present in a reset segment.
Implementations§
Source§impl Options
impl Options
Sourcepub fn iter(&self) -> impl Iterator<Item = TcpOption<'_>> + Debug + Clone
pub fn iter(&self) -> impl Iterator<Item = TcpOption<'_>> + Debug + Clone
Returns an iterator over the contained options.
Sourcepub fn from_iter<'a>(
control: Option<&Control>,
iter: impl IntoIterator<Item = TcpOption<'a>>,
) -> Self
pub fn from_iter<'a>( control: Option<&Control>, iter: impl IntoIterator<Item = TcpOption<'a>>, ) -> Self
Creates a new Options
from an iterator of TcpOption.
Sourcepub fn try_from_iter<'a, A: IpAddress>(
builder: &TcpSegmentBuilder<A>,
iter: impl IntoIterator<Item = TcpOption<'a>>,
) -> Result<Self, MalformedFlags>
pub fn try_from_iter<'a, A: IpAddress>( builder: &TcpSegmentBuilder<A>, iter: impl IntoIterator<Item = TcpOption<'a>>, ) -> Result<Self, MalformedFlags>
Creates a new Options
from an iterator of TcpOption.
Sourcepub fn window_scale(&self) -> Option<WindowScale>
pub fn window_scale(&self) -> Option<WindowScale>
Reads the window scale if this is an Options::Handshake
.
Sourcepub fn mss(&self) -> Option<Mss>
pub fn mss(&self) -> Option<Mss>
Reads the mss option if this is an Options::Handshake
.
Sourcepub fn sack_permitted(&self) -> bool
pub fn sack_permitted(&self) -> bool
Returns true IFF this is an Options::Handshake
and its
[HandShakeOptions::sack_permitted
] is set.
Sourcepub fn sack_blocks(&self) -> &SackBlocks
pub fn sack_blocks(&self) -> &SackBlocks
Returns the segment’s selective ack blocks.
Returns a reference to empty blocks if this is not Options::Segment
.
Trait Implementations§
Source§impl From<HandshakeOptions> for Options
impl From<HandshakeOptions> for Options
Source§fn from(value: HandshakeOptions) -> Self
fn from(value: HandshakeOptions) -> Self
Converts to this type from the input type.
Source§impl From<ResetOptions> for Options
impl From<ResetOptions> for Options
Source§fn from(value: ResetOptions) -> Self
fn from(value: ResetOptions) -> Self
Converts to this type from the input type.
Source§impl From<SegmentOptions> for Options
impl From<SegmentOptions> for Options
Source§fn from(value: SegmentOptions) -> Self
fn from(value: SegmentOptions) -> Self
Converts to this type from the input type.
impl Eq for Options
impl StructuralPartialEq for Options
Auto Trait Implementations§
impl Freeze for Options
impl RefUnwindSafe for Options
impl Send for Options
impl Sync for Options
impl Unpin for Options
impl UnwindSafe for Options
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,
§impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous1, D> for Twhere
D: ResourceDialect,
§impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
impl<T, D> Encode<Ambiguous2, D> for Twhere
D: ResourceDialect,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
Source§impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
Source§fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
fn send_frame<S>( &mut self, bindings_ctx: &mut BC, metadata: Meta, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
Send a frame. Read more
Source§impl<BC, S, Meta, DeviceId> SendableFrameMeta<FakeCoreCtx<S, Meta, DeviceId>, BC> for Meta
impl<BC, S, Meta, DeviceId> SendableFrameMeta<FakeCoreCtx<S, Meta, DeviceId>, BC> for Meta
Source§fn send_meta<SS>(
self,
core_ctx: &mut FakeCoreCtx<S, Meta, DeviceId>,
bindings_ctx: &mut BC,
frame: SS,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, SS>>
fn send_meta<SS>( self, core_ctx: &mut FakeCoreCtx<S, Meta, DeviceId>, bindings_ctx: &mut BC, frame: SS, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, SS>>
Sends this frame metadata to the provided contexts.
Source§impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta
impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta
Source§fn send_meta<S>(
self,
core_ctx: &mut FakeFrameCtx<Meta>,
_bindings_ctx: &mut BC,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
fn send_meta<S>( self, core_ctx: &mut FakeFrameCtx<Meta>, _bindings_ctx: &mut BC, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>
Sends this frame metadata to the provided contexts.
Source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
Source§fn handle_timer(
&mut self,
bindings_ctx: &mut BC,
dispatch: Id,
timer: <BC as TimerBindingsTypes>::UniqueTimerId,
)
fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )
Handle a timer firing. Read more