pub struct EncodeContext<'a, Value> { /* private fields */ }Expand description
Read-only context supplied to an encode policy hook.
The engine retains ownership of the mutable output slice. Hooks can inspect
the current value and cursor/capacity metadata, then return an
crate::engine::EncodeUnencodableAction without being able to mutate
output behind the engine’s progress accounting.
In a codec-backed converter, values emitted by source decode reset or finish have no source-unit position and use placeholder index 0. Ordinary decoded values retain their index in the input slice supplied to the decode call that produced them. A pending value keeps that index across calls; it is not rebased to a later input slice and is not a whole-stream offset. The retained index may be outside the bounds of a later input slice.
§Type Parameters
Value: Logical input value type.
§Examples
use qubit_codec::engine::EncodeContext;
let value = 7_u8;
let context = EncodeContext::new(&value, 0, 0, 1);
assert_eq!(context.input_value(), &7);Implementations§
Source§impl<'a, Value> EncodeContext<'a, Value>
impl<'a, Value> EncodeContext<'a, Value>
Sourcepub const fn new(
input_value: &'a Value,
input_index: usize,
output_index: usize,
available_output: usize,
) -> Self
pub const fn new( input_value: &'a Value, input_index: usize, output_index: usize, available_output: usize, ) -> Self
Creates an encode policy context.
§Parameters
input_value: Borrowed input value being encoded.input_index: Input index ofinput_value; converter lifecycle- generated values use placeholder 0 because they have no source-unit position.output_index: Absolute output index where writing begins.available_output: Output units writable fromoutput_index.
§Returns
Returns a read-only encode context.
Sourcepub const fn input_value(&self) -> &Value
pub const fn input_value(&self) -> &Value
Returns the input value being encoded.
§Returns
The input value borrowed through this context without allocation.
Sourcepub const fn input_index(&self) -> usize
pub const fn input_index(&self) -> usize
Returns the input index of the current value.
In a codec-backed converter, lifecycle-generated values use placeholder index 0 because they have no source-unit position. Ordinary decoded values retain their index in the input slice supplied to the decode call that produced them. A pending value keeps that index across calls; it is not rebased to a later input slice and is not a whole-stream offset. The retained index may be outside the bounds of a later input slice.
§Returns
The value’s input index, including placeholder 0 for converter lifecycle-generated values.
Sourcepub const fn output_index(&self) -> usize
pub const fn output_index(&self) -> usize
Returns the absolute output index where writing begins.
§Returns
The starting output cursor for this encode attempt.
Sourcepub const fn available_output(&self) -> usize
pub const fn available_output(&self) -> usize
Returns output capacity visible to this encode attempt.
§Returns
The number of output units available from the starting cursor.