pub struct FrameStreamEncoder<F>{ /* private fields */ }Expand description
Encodes a stream of bytes into framed messages.
Each frame is emitted with proper metadata. Frames are emitted when enough data is buffered or when explicitly flushed. Optionally, a callback can be registered to observe each encoded frame.
Implementations§
Source§impl<F> FrameStreamEncoder<F>
impl<F> FrameStreamEncoder<F>
Sourcepub fn new(
stream_id: u32,
max_chunk_size: usize,
on_emit: F,
) -> FrameStreamEncoder<F>
pub fn new( stream_id: u32, max_chunk_size: usize, on_emit: F, ) -> FrameStreamEncoder<F>
Creates a new encoder with the given stream ID and payload limit.
An optional on_emit callback will be invoked with every emitted
frame (as raw encoded bytes).
Sourcepub fn write_bytes(&mut self, data: &[u8]) -> Result<usize, FrameEncodeError>
pub fn write_bytes(&mut self, data: &[u8]) -> Result<usize, FrameEncodeError>
Accepts some bytes, returns zero or more encoded frames (ready to send). Buffers any leftover partial chunk internally.
Sourcepub fn flush(&mut self) -> Result<usize, FrameEncodeError>
pub fn flush(&mut self) -> Result<usize, FrameEncodeError>
Flushes remaining buffered data as a final frame (could be partial).
Sourcepub fn end_stream(&mut self) -> Result<usize, FrameEncodeError>
pub fn end_stream(&mut self) -> Result<usize, FrameEncodeError>
Returns an End frame, even if no data was ever sent.
Sourcepub fn cancel_stream(&mut self) -> Result<usize, FrameEncodeError>
pub fn cancel_stream(&mut self) -> Result<usize, FrameEncodeError>
Emits a Cancel frame for this stream.
Auto Trait Implementations§
impl<F> Freeze for FrameStreamEncoder<F>where
F: Freeze,
impl<F> RefUnwindSafe for FrameStreamEncoder<F>where
F: RefUnwindSafe,
impl<F> Send for FrameStreamEncoder<F>where
F: Send,
impl<F> Sync for FrameStreamEncoder<F>where
F: Sync,
impl<F> Unpin for FrameStreamEncoder<F>where
F: Unpin,
impl<F> UnsafeUnpin for FrameStreamEncoder<F>where
F: UnsafeUnpin,
impl<F> UnwindSafe for FrameStreamEncoder<F>where
F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more