use core::num::NonZeroUsize;
use super::pending_value::PendingValue;
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub(in crate::transcode) enum PendingEncodeStep<Value> {
Written {
written: usize,
},
NeedOutput {
pending: PendingValue<Value>,
additional: NonZeroUsize,
available: usize,
},
}
impl<Value> PendingEncodeStep<Value> {
#[inline(always)]
pub(in crate::transcode) const fn written(written: usize) -> Self {
Self::Written { written }
}
#[inline(always)]
pub(in crate::transcode) const fn need_output(
pending: PendingValue<Value>,
additional: NonZeroUsize,
available: usize,
) -> Self {
Self::NeedOutput {
pending,
additional,
available,
}
}
}