|
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