pub enum Options {
Handshake(HandshakeOptions),
Segment(SegmentOptions),
}
Expand description
Contains all supported TCP options.
Variants§
Handshake(HandshakeOptions)
Options present in a handshake segment.
Segment(SegmentOptions)
Options present in a regular 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 new_with_handshake(handshake: bool) -> Self
pub fn new_with_handshake(handshake: bool) -> Self
Returns a new empty Options
with the variant dictated by
handshake
.
Sourcepub fn from_iter<'a>(
handshake: bool,
iter: impl IntoIterator<Item = TcpOption<'a>>,
) -> Self
pub fn from_iter<'a>( handshake: bool, iter: impl IntoIterator<Item = TcpOption<'a>>, ) -> Self
Creates a new Options
from an iterator of TcpOption.
If handshake
is true
, only the handshake options will be parsed.
Otherwise only the non-handshake options are parsed.
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<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<O, BC> BuildableCoreContext<BC> for Owhere
O: Default,
impl<O, BC> BuildableCoreContext<BC> for Owhere
O: Default,
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<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>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
Send a frame. Read more
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