#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
#[must_use]
pub struct DecodeLifecycleProgress<V> {
value: V,
reset_written: usize,
finish_written: usize,
}
impl<V> DecodeLifecycleProgress<V> {
#[inline(always)]
pub(crate) const fn new(value: V, reset_written: usize, finish_written: usize) -> Self {
Self {
value,
reset_written,
finish_written,
}
}
#[inline(always)]
#[must_use]
pub const fn value(&self) -> &V {
&self.value
}
#[inline(always)]
#[must_use]
pub const fn reset_written(&self) -> usize {
self.reset_written
}
#[inline(always)]
#[must_use]
pub const fn finish_written(&self) -> usize {
self.finish_written
}
#[inline(always)]
#[must_use]
pub fn into_parts(self) -> (V, usize, usize) {
(self.value, self.reset_written, self.finish_written)
}
}