Skip to main content

FragmentHeader

Struct FragmentHeader 

Source
pub struct FragmentHeader {
    pub src_node: u8,
    pub msg_seq: u8,
    pub frag_idx: u8,
    pub total_frags: u8,
}
Expand description

Fragment header

Fields§

§src_node: u8

Source node ID

§msg_seq: u8

Message sequence number

§frag_idx: u8

Fragment index (255 = single unfragmented packet)

§total_frags: u8

Total number of fragments (0 = single packet)

Implementations§

Source§

impl FragmentHeader

Source

pub const SIZE: usize = FRAGMENT_HEADER_SIZE

Header size in bytes

Source

pub const fn single(src_node: u8, msg_seq: u8) -> Self

Create header for a single (unfragmented) packet

Source

pub const fn fragment( src_node: u8, msg_seq: u8, frag_idx: u8, total_frags: u8, ) -> Self

Create header for a fragment

Source

pub const fn is_single(&self) -> bool

Check if this is a single (unfragmented) packet

Source

pub const fn is_first(&self) -> bool

Check if this is the first fragment

Source

pub const fn is_last(&self) -> bool

Check if this is the last fragment

Source

pub fn encode(&self, buf: &mut [u8]) -> Result<usize>

Encode header into buffer

§Returns

Number of bytes written (always 4)

Source

pub fn decode(buf: &[u8]) -> Result<Self>

Decode header from buffer

Trait Implementations§

Source§

impl Clone for FragmentHeader

Source§

fn clone(&self) -> FragmentHeader

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for FragmentHeader

Source§

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

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

impl PartialEq for FragmentHeader

Source§

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

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

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 FragmentHeader

Source§

impl Eq for FragmentHeader

Source§

impl StructuralPartialEq for FragmentHeader

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

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

Source§

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
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

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

Source§

type Error = Infallible

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

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

Performs the conversion.
Source§

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

Source§

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

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

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

Performs the conversion.