use crate::prelude::*;
pub fn vec2array<T, const N: usize>(vec: Vec<T>) -> Result<[T; N]> {
vec.try_into().map_err(|_| Error::MismatchedLength { expect: N })
}
#[test]
fn vec2array_should_work() {
assert_eq!(vec2array::<_, 8>(alloc::vec![0; 8]), Ok([0; 8]));
}
pub fn vec_n_into<T, V, const N: usize>(vec: Vec<T>) -> Result<V>
where
V: From<[T; N]>,
{
Ok(vec2array(vec)?.into())
}
#[test]
fn vec_n_into_should_work() {
assert_eq!(
vec_n_into::<u8, Ljfn, 17>(b"Love Jane Forever".to_vec()),
Ok(Ljfn(*b"Love Jane Forever"))
);
}