Skip to content

Commit 005efdc

Browse files
authored
Merge pull request #1044 from jturner314/concatenate-macro-optional-comma
Allow trailing comma in stack and concatenate macros
2 parents bd3aa27 + f9b8d78 commit 005efdc

File tree

1 file changed

+43
-18
lines changed

1 file changed

+43
-18
lines changed

src/stacking.rs

+43-18
Original file line numberDiff line numberDiff line change
@@ -192,22 +192,39 @@ where
192192
///
193193
/// # fn main() {
194194
///
195-
/// let a = arr2(&[[2., 2.],
196-
/// [3., 3.]]);
197-
/// assert!(
198-
/// stack![Axis(0), a, a]
199-
/// == arr3(&[[[2., 2.],
200-
/// [3., 3.]],
201-
/// [[2., 2.],
202-
/// [3., 3.]]])
195+
/// let a = arr2(&[[1., 2.],
196+
/// [3., 4.]]);
197+
/// assert_eq!(
198+
/// stack![Axis(0), a, a],
199+
/// arr3(&[[[1., 2.],
200+
/// [3., 4.]],
201+
/// [[1., 2.],
202+
/// [3., 4.]]]),
203+
/// );
204+
/// assert_eq!(
205+
/// stack![Axis(1), a, a,],
206+
/// arr3(&[[[1., 2.],
207+
/// [1., 2.]],
208+
/// [[3., 4.],
209+
/// [3., 4.]]]),
210+
/// );
211+
/// assert_eq!(
212+
/// stack![Axis(2), a, a],
213+
/// arr3(&[[[1., 1.],
214+
/// [2., 2.]],
215+
/// [[3., 3.],
216+
/// [4., 4.]]]),
203217
/// );
204218
/// # }
205219
/// ```
206220
#[macro_export]
207221
macro_rules! stack {
222+
($axis:expr, $( $array:expr ),+ ,) => {
223+
$crate::stack!($axis, $($array),+)
224+
};
208225
($axis:expr, $( $array:expr ),+ ) => {
209226
$crate::stack($axis, &[ $($crate::ArrayView::from(&$array) ),* ]).unwrap()
210-
}
227+
};
211228
}
212229

213230
/// Concatenate arrays along the given axis.
@@ -226,22 +243,30 @@ macro_rules! stack {
226243
///
227244
/// # fn main() {
228245
///
229-
/// let a = arr2(&[[2., 2.],
230-
/// [3., 3.]]);
231-
/// assert!(
232-
/// concatenate![Axis(0), a, a]
233-
/// == arr2(&[[2., 2.],
234-
/// [3., 3.],
235-
/// [2., 2.],
236-
/// [3., 3.]])
246+
/// let a = arr2(&[[1., 2.],
247+
/// [3., 4.]]);
248+
/// assert_eq!(
249+
/// concatenate![Axis(0), a, a],
250+
/// arr2(&[[1., 2.],
251+
/// [3., 4.],
252+
/// [1., 2.],
253+
/// [3., 4.]]),
254+
/// );
255+
/// assert_eq!(
256+
/// concatenate![Axis(1), a, a,],
257+
/// arr2(&[[1., 2., 1., 2.],
258+
/// [3., 4., 3., 4.]]),
237259
/// );
238260
/// # }
239261
/// ```
240262
#[macro_export]
241263
macro_rules! concatenate {
264+
($axis:expr, $( $array:expr ),+ ,) => {
265+
$crate::concatenate!($axis, $($array),+)
266+
};
242267
($axis:expr, $( $array:expr ),+ ) => {
243268
$crate::concatenate($axis, &[ $($crate::ArrayView::from(&$array) ),* ]).unwrap()
244-
}
269+
};
245270
}
246271

247272
/// Stack arrays along the new axis.

0 commit comments

Comments
 (0)