Skip to main content

BlockingFrameWriter

Struct BlockingFrameWriter 

Source
pub struct BlockingFrameWriter<W: Write> { /* private fields */ }
Expand description

Blocking frame writer. Writes length-prefixed frames to any Write sink.

Uses BufWriter to batch small writes (length prefix + payload) into fewer syscalls. Flushed explicitly after each batch.

Implementations§

Source§

impl<W: Write> BlockingFrameWriter<W>

Source

pub fn new(writer: W) -> Self

Source

pub fn write_frame(&mut self, data: &[u8]) -> Result<()>

Write a complete frame (prepends the 4-byte LE length prefix).

Source

pub fn write_frame_parts(&mut self, parts: &[&[u8]]) -> Result<()>

Write one frame whose payload is parts laid end to end, with the length prefix of their total. Spares a caller that holds a frame in pieces — a header it computes and a body it was given — from assembling them in a buffer of its own: each part goes straight into the write buffer, and the frame reaches the socket whole at the next flush. A part that arrives while the buffer is too full to take it still lands on the socket in order, only in a separate write.

A frame over MAX_FRAME_SIZE is refused with io::ErrorKind::InvalidInput before any of it is written: the far end would drop the connection on it, and this is the error that says why.

Source

pub fn flush(&mut self) -> Result<()>

Flush buffered data to the underlying writer.

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, 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.