#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub struct EncodeContext<'a, Value> {
input_value: &'a Value,
input_index: usize,
output_index: usize,
available_output: usize,
}
impl<'a, Value> EncodeContext<'a, Value> {
#[inline(always)]
#[must_use]
pub const fn new(
input_value: &'a Value,
input_index: usize,
output_index: usize,
available_output: usize,
) -> Self {
Self {
input_value,
input_index,
output_index,
available_output,
}
}
#[inline(always)]
#[must_use]
pub const fn input_value(&self) -> &Value {
self.input_value
}
#[inline(always)]
#[must_use]
pub const fn input_index(&self) -> usize {
self.input_index
}
#[inline(always)]
#[must_use]
pub const fn output_index(&self) -> usize {
self.output_index
}
#[inline(always)]
#[must_use]
pub const fn available_output(&self) -> usize {
self.available_output
}
}