pub struct Encoder { /* private fields */ }Expand description
Synchronous frame encoder constructed entirely from metadata with reusable codec storage.
The caller owns the frame index and must never encrypt different payloads with the same key/index. Use a fresh key for each immutable object. This type performs no I/O, scheduling, implicit indexing, or retries.
Implementations§
Source§impl Encoder
impl Encoder
Sourcepub fn encode_frame(
&mut self,
index: u64,
buffer: &mut Vec<u8>,
) -> Result<FrameSizes>
pub fn encode_frame( &mut self, index: u64, buffer: &mut Vec<u8>, ) -> Result<FrameSizes>
Replace raw bytes with stored bytes, returning lengths to append to metadata. Empty/oversized frames and out-of-policy indices are refused. On any error the buffer is cleared, but its allocation is retained.
This does not append metadata: the caller does that after successful I/O. The metadata builder enforces that a short fixed frame is the last frame.
Sourcepub fn encode_frame_alloc(
&mut self,
index: u64,
buffer: &[u8],
) -> Result<(Vec<u8>, FrameSizes)>
pub fn encode_frame_alloc( &mut self, index: u64, buffer: &[u8], ) -> Result<(Vec<u8>, FrameSizes)>
Encode raw bytes into an owned buffer, leaving the input unchanged. Return the stored bytes and lengths to append to metadata. Empty/oversized frames and out-of-policy indices are refused. Allocation and encoding failures are returned as errors.