use generic_array::{ArrayLength, GenericArray};
use crate::{IndexableCollection, IndexableCollectionMut};
impl<T, N: ArrayLength> IndexableCollection for GenericArray<T, N> {
type Item = T;
forward_indexable!(get_item);
fn len(&self) -> usize {
N::USIZE
}
}
impl<T, N: ArrayLength> IndexableCollectionMut for GenericArray<T, N> {
forward_mutable!();
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn generic_array_len() {
let arr = GenericArray::from_array([(); 17]);
assert_eq!(IndexableCollection::len(&arr), 17);
let arr = GenericArray::from_array([(); 32]);
assert_eq!(IndexableCollection::len(&arr), 32);
}
}