⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

SackBlock

Struct SackBlock 

Source
pub struct SackBlock {
    pub left_edge: u32,
    pub right_edge: u32,
}
Expand description

A single SACK block representing a contiguous range of received bytes.

left_edge is the first sequence number in the block (inclusive). right_edge is one past the last sequence number (exclusive).

Fields§

§left_edge: u32§right_edge: u32

Implementations§

Source§

impl SackBlock

Source

pub const fn new(left_edge: u32, right_edge: u32) -> Self

Create a new SACK block.

Source

pub fn contains(&self, seq: u32) -> bool

Returns true if this block contains the given sequence number.

Source

pub fn len(&self) -> u32

Returns the length of this block in sequence space.

Source

pub fn is_empty(&self) -> bool

Returns true if the block is empty (zero length).

Source

pub fn overlaps_or_adjacent(&self, other: &SackBlock) -> bool

Returns true if this block overlaps or is adjacent to other.

Source

pub fn merge(&mut self, other: &SackBlock)

Merge another block into this one (union of ranges). Only valid if the blocks overlap or are adjacent.

Trait Implementations§

Source§

impl Clone for SackBlock

Source§

fn clone(&self) -> SackBlock

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for SackBlock

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SackBlock

Source§

fn eq(&self, other: &SackBlock) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for SackBlock

Source§

impl Eq for SackBlock

Source§

impl StructuralPartialEq for SackBlock

Auto Trait Implementations§

§

impl Freeze for SackBlock

§

impl RefUnwindSafe for SackBlock

§

impl Send for SackBlock

§

impl Sync for SackBlock

§

impl Unpin for SackBlock

§

impl UnwindSafe for SackBlock

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.