extern crate alloc;
use crate::DecodeError;
pub(crate) fn cast_nom_err<I, O>(error: nom::Err<DecodeError<I>>) -> nom::Err<DecodeError<O>>
where
DecodeError<I>: Into<DecodeError<O>>,
{
match error {
nom::Err::Incomplete(i) => nom::Err::Incomplete(i),
nom::Err::Error(e) => nom::Err::Error(e.into()),
nom::Err::Failure(e) => nom::Err::Failure(e.into()),
}
}
pub(crate) fn bitstring_padding_bits(len: usize) -> usize {
let extra_bits = len % 8;
if extra_bits > 0 {
8 - extra_bits
} else {
0
}
}
pub(crate) fn bitstring_buffer_size(len: usize) -> usize {
num::Integer::div_ceil(&len, &8usize)
}