pub struct ResponseFrame<'a> {
pub status: u32,
pub request_id: u64,
pub payload: &'a [u8],
}Expand description
Decoded response frame with request ID for request-response correlation (the server framing).
Wire format: [status:4 LE][length:4 LE][request_id:8 LE][payload:N]
where status = 0 for success, non-zero for error code.
Fields§
§status: u32§request_id: u64§payload: &'a [u8]Implementations§
Source§impl<'a> ResponseFrame<'a>
impl<'a> ResponseFrame<'a>
Sourcepub const HEADER_SIZE: usize = 16
pub const HEADER_SIZE: usize = 16
Size of the frame header: [status:4][length:4][request_id:8].
Sourcepub fn decode(buf: &'a [u8]) -> Result<(Self, usize), WireError>
pub fn decode(buf: &'a [u8]) -> Result<(Self, usize), WireError>
Decode a response frame from a complete buffer.
The length field covers request_id(8) + payload(N).
§Errors
Returns WireError::UnexpectedEof if the buffer is too short.
Sourcepub fn encode_ok(
request_id: u64,
payload: &[u8],
out: &mut BytesMut,
) -> Result<(), WireError>
pub fn encode_ok( request_id: u64, payload: &[u8], out: &mut BytesMut, ) -> Result<(), WireError>
Encode a successful response with payload.
The length field = 8 (request_id) + payload.len().
§Errors
Returns WireError::PayloadTooLarge if payload exceeds u32 capacity.
Sourcepub fn encode_error(status: NonZeroU32, request_id: u64, out: &mut BytesMut)
pub fn encode_error(status: NonZeroU32, request_id: u64, out: &mut BytesMut)
Encode an error response (status code, no payload, preserves request_id).
Sourcepub const fn encoded_size(payload_len: usize) -> Option<usize>
pub const fn encoded_size(payload_len: usize) -> Option<usize>
Total encoded size for a given payload length.
Returns None if HEADER_SIZE + payload_len overflows usize.