1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use crate::arrays::array::Array;
use crate::base::base_array::ArrayBase;
use crate::base::base_type::Numeric;

impl <N: Numeric> IntoIterator for Array<N> {
    type Item = N;
    type IntoIter = std::vec::IntoIter<Self::Item>;

    fn into_iter(self) -> Self::IntoIter {
        self.elements.into_iter()
    }
}

impl <N: Numeric> FromIterator<N> for Array<N> {
    fn from_iter<T: IntoIterator<Item=N>>(iter: T) -> Self {
        let elems: Vec<N> = iter.into_iter().collect();
        Array::new(elems.clone(), vec![elems.len()])
    }
}