Skip to main content

FrameCodec

Struct FrameCodec 

Source
pub struct FrameCodec;
Expand description

Provides encoding and decoding functionality for frames.

The FrameCodec is responsible for serializing a Frame into a byte stream and deserializing a byte stream back into a Frame. It handles the creation and parsing of the frame header, ensuring the correct encoding of all frame fields such as stream ID, sequence ID, kind, timestamp, and payload.

This is used to package and unpack frames for transmission across a stream, ensuring that all necessary metadata is included alongside the actual payload.

Implementations§

Source§

impl FrameCodec

Source

pub fn encode(frame: &Frame) -> Vec<u8>

Encodes a Frame into a byte vector.

This method serializes the Frame’s metadata and payload into a byte stream. The resulting vector can be transmitted over the stream or saved to a buffer.

§Arguments
  • frame - The Frame to be encoded.
§Returns

Returns a vector of bytes that represents the encoded frame. The frame consists of the frame’s length, stream ID, sequence ID, kind, timestamp, and payload.

Source

pub fn decode(buf: &[u8]) -> Result<DecodedFrame, FrameDecodeError>

Decodes a byte slice into a Frame.

This method takes a byte buffer representing a serialized frame and attempts to parse it back into a Frame struct. It checks the integrity of the frame, ensuring that the buffer contains enough data and that all fields can be correctly interpreted.

§Arguments
  • buf - A byte slice representing the frame to decode.
§Returns

Returns a Result where:

  • Ok(Frame) contains the decoded Frame object.
  • Err(FrameStreamError) contains an error if the frame is corrupted or malformed.

The method will return an error if the buffer is too short or if the frame data does not conform to the expected structure.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more