|
52 | 52 | unsafe { Self::from_shape_vec_unchecked(v.len() as Ix, v) } |
53 | 53 | } |
54 | 54 |
|
55 | | - /// Create a one-dimensional array from an iterable. |
56 | | - /// |
57 | | - /// **Panics** if the length is greater than `isize::MAX`. |
58 | | - /// |
59 | | - /// ```rust |
60 | | - /// use ndarray::{Array, arr1}; |
61 | | - /// |
62 | | - /// let array = Array::from_iter((0..5).map(|x| x * x)); |
63 | | - /// assert!(array == arr1(&[0, 1, 4, 9, 16])) |
64 | | - /// ``` |
65 | | - pub fn from_iter<I>(iterable: I) -> Self |
66 | | - where |
67 | | - I: IntoIterator<Item = A>, |
68 | | - { |
69 | | - Self::from_vec(iterable.into_iter().collect()) |
70 | | - } |
71 | 55 |
|
72 | 56 | /// Create a one-dimensional array with `n` evenly spaced elements from |
73 | 57 | /// `start` to `end` (inclusive). `A` must be a floating point type. |
@@ -174,6 +158,28 @@ where |
174 | 158 | } |
175 | 159 | } |
176 | 160 |
|
| 161 | +impl<S,A> std::iter::FromIterator<A> for ArrayBase<S,Ix1> |
| 162 | +where |
| 163 | + S: DataOwned<Elem = A>, |
| 164 | +{ |
| 165 | + /// Create a one-dimensional array from an iterable. |
| 166 | + /// |
| 167 | + /// **Panics** if the length is greater than `isize::MAX`. |
| 168 | + /// |
| 169 | + /// ```rust |
| 170 | + /// use ndarray::{Array, arr1}; |
| 171 | + /// |
| 172 | + /// let array = Array::from_iter((0..5).map(|x| x * x)); |
| 173 | + /// assert!(array == arr1(&[0, 1, 4, 9, 16])) |
| 174 | + /// ``` |
| 175 | + fn from_iter<I>(iterable: I) -> Self |
| 176 | + where |
| 177 | + I: IntoIterator<Item = A>, |
| 178 | + { |
| 179 | + Self::from_vec(iterable.into_iter().collect()) |
| 180 | + } |
| 181 | +} |
| 182 | + |
177 | 183 | /// ## Constructor methods for two-dimensional arrays. |
178 | 184 | impl<S, A> ArrayBase<S, Ix2> |
179 | 185 | where |
@@ -327,7 +333,7 @@ where |
327 | 333 | unsafe { Self::from_shape_vec_unchecked(shape, v) } |
328 | 334 | } else { |
329 | 335 | let dim = shape.dim.clone(); |
330 | | - let v = to_vec_mapped(indexes::indices_iter_f(dim).into_iter(), f); |
| 336 | + let v = to_vec_mapped(indexes::indices_iter_f(dim), f); |
331 | 337 | unsafe { Self::from_shape_vec_unchecked(shape, v) } |
332 | 338 | } |
333 | 339 | } |
@@ -422,8 +428,8 @@ where |
422 | 428 | ArrayBase { |
423 | 429 | ptr: v.as_mut_ptr(), |
424 | 430 | data: DataOwned::new(v), |
425 | | - strides, |
426 | | - dim, |
| 431 | + strides, |
| 432 | + dim, |
427 | 433 | } |
428 | 434 | } |
429 | 435 |
|
|
0 commit comments