Skip to main content

FrameHeader

Struct FrameHeader 

Source
pub struct FrameHeader {
    pub frame_type: FrameType,
    pub flags: FrameFlags,
    pub channel_id: u32,
    pub stream_id: u64,
    pub payload_len: u64,
}
Expand description

A decoded PO frame header.

This is a pure value type — it does not own or reference the payload. After decoding the header, read payload_len bytes from the transport to get the payload.

Fields§

§frame_type: FrameType

The type of this frame (Data, Handshake, Ping, etc.).

§flags: FrameFlags

Processing flags (control, priority, encrypted).

§channel_id: u32

Logical channel for application-level multiplexing.

§stream_id: u64

Stream identifier for QUIC-like concurrent streams within a channel.

§payload_len: u64

Length of the payload that follows this header.

Implementations§

Source§

impl FrameHeader

Source

pub const fn data(channel_id: u32, payload_len: u64) -> Self

Create a new header for a data frame with default flags.

Source

pub const fn control(frame_type: FrameType) -> Self

Create a new control frame header (e.g., Ping, Pong, Close).

Source

pub const fn with_encrypted(self) -> Self

Set the encrypted flag on this header.

Source

pub const fn with_priority(self) -> Self

Set the priority flag on this header.

Source

pub const fn with_stream(self, stream_id: u64) -> Self

Set the stream ID.

Source

pub const fn encoded_len(&self) -> usize

Calculate the exact number of bytes this header will occupy when encoded.

Source

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

Encode this header into the provided buffer.

Returns the number of bytes written.

Source

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

Decode a header from the provided buffer.

Returns (header, bytes_consumed).

§Errors
  • WireError::Incomplete if the buffer doesn’t contain a complete header.
  • WireError::UnknownFrameType if the type nibble is invalid.

Trait Implementations§

Source§

impl Clone for FrameHeader

Source§

fn clone(&self) -> FrameHeader

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 FrameHeader

Source§

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

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

impl Display for FrameHeader

Source§

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

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

impl PartialEq for FrameHeader

Source§

fn eq(&self, other: &FrameHeader) -> 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 FrameHeader

Source§

impl Eq for FrameHeader

Source§

impl StructuralPartialEq for FrameHeader

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.