Skip to main content

decode_message

Function decode_message 

Source
pub fn decode_message(data: &mut BytesMut) -> Result<(BackendMessage, usize)>
Expand description

Decode a backend message from BytesMut without cloning

This version decodes in-place from a mutable BytesMut buffer and returns the number of bytes consumed. The caller must advance the buffer after calling this.

§Returns

Ok((msg, consumed)) - Message and number of bytes consumed Err(e) - IO error if message is incomplete or invalid

§Performance

This version avoids the expensive buf.clone().freeze() call by working directly with references, reducing allocations and copies in the hot path.

§Errors

Returns io::Error with UnexpectedEof if the buffer is too small for a complete message. Returns io::Error with InvalidData if the message length or content is malformed.