pub struct Stream {Show 15 fields
pub initial_sequence_number: u32,
pub seq_offset: SeqOffset,
pub window_scale: u8,
pub got_window_scale: bool,
pub state: StreamInboundState,
pub seq_window_start: u32,
pub seq_window_end: u32,
pub highest_acked: u64,
pub reverse_acked: u64,
pub had_reset: bool,
pub has_ended: bool,
pub gaps_length: u64,
pub retransmit_count: usize,
pub segments_info: BinaryHeap<SegmentInfo>,
pub segments_info_dropped: usize,
}
Expand description
unidirectional stream of a connection
Fields§
§initial_sequence_number: u32
initial sequence number
seq_offset: SeqOffset
offset from packet sequence number to absolute stream offset
window_scale: u8
window scale
got_window_scale: bool
if the window scale was captured (if not, try to estimate)
state: StreamInboundState
stream state
seq_window_start: u32
lowest acceptable TCP sequence number (used to disambiguate absolute offset)
seq_window_end: u32
highest acceptable TCP sequence number plus one
highest_acked: u64
highest offset at which we have received an ack
reverse_acked: u64
highest acked offset of opposite stream
had_reset: bool
whether a reset happened in this direction
has_ended: bool
true if the FIN for this stream was acked
gaps_length: u64
count of bytes skipped due to gaps
retransmit_count: usize
detected retransmission count
segments_info: BinaryHeap<SegmentInfo>
segment metadata
segments_info_dropped: usize
number of packets not written to segments_info because it was full
Implementations§
Source§impl Stream
impl Stream
Sourcepub fn readable_buffered_length(&self) -> usize
pub fn readable_buffered_length(&self) -> usize
return the number of bytes currently buffered and readable
Sourcepub fn total_buffered_length(&self) -> usize
pub fn total_buffered_length(&self) -> usize
return the total length of the buffer, including segments not yet readable
Sourcepub fn buffer_start(&self) -> u64
pub fn buffer_start(&self) -> u64
get offset of head of internal buffer
Sourcepub fn set_window_scale(&mut self, window_scale: u8) -> bool
pub fn set_window_scale(&mut self, window_scale: u8) -> bool
set the window scale option
Sourcepub fn estimate_window_scale(&mut self, fit_end_offset: u64) -> bool
pub fn estimate_window_scale(&mut self, fit_end_offset: u64) -> bool
if window scale was not received, try to estimate it
Sourcepub fn update_offset(
&mut self,
number: u32,
should_advance: bool,
) -> Option<u64>
pub fn update_offset( &mut self, number: u32, should_advance: bool, ) -> Option<u64>
update seq_window and seq_offset based on current window, return whether the value was in the current window and the absolute stream offset
Sourcepub fn handle_data_packet(
&mut self,
sequence_number: u32,
data: &[u8],
extra: &PacketExtra,
) -> bool
pub fn handle_data_packet( &mut self, sequence_number: u32, data: &[u8], extra: &PacketExtra, ) -> bool
handle data packet in the forward direction
Sourcepub fn handle_ack_packet(
&mut self,
acknowledgment_number: u32,
window_size: u16,
extra: &PacketExtra,
) -> bool
pub fn handle_ack_packet( &mut self, acknowledgment_number: u32, window_size: u16, extra: &PacketExtra, ) -> bool
handle ack packet in the reverse direction
Sourcepub fn handle_fin_packet(
&mut self,
sequence_number: u32,
data_len: usize,
extra: &PacketExtra,
) -> bool
pub fn handle_fin_packet( &mut self, sequence_number: u32, data_len: usize, extra: &PacketExtra, ) -> bool
handle FIN packet
Sourcepub fn handle_rst_packet(
&mut self,
sequence_number: u32,
extra: &PacketExtra,
) -> bool
pub fn handle_rst_packet( &mut self, sequence_number: u32, extra: &PacketExtra, ) -> bool
handle reset packet in established state
Sourcepub fn add_segment_info(&mut self, info: SegmentInfo) -> bool
pub fn add_segment_info(&mut self, info: SegmentInfo) -> bool
add an info object to segments_info
Sourcepub fn read_segments_until(
&mut self,
end_offset: Option<u64>,
in_segments: &mut Vec<SegmentInfo>,
)
pub fn read_segments_until( &mut self, end_offset: Option<u64>, in_segments: &mut Vec<SegmentInfo>, )
pop and read segment info until offset, adding to vec.
if end_offset
is None, read everything
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Stream
impl RefUnwindSafe for Stream
impl Send for Stream
impl Sync for Stream
impl Unpin for Stream
impl UnwindSafe for Stream
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more