From e18277713336b6f53554bb76d6690043ce28faef Mon Sep 17 00:00:00 2001 From: Joseph Wilson Date: Fri, 27 Oct 2023 23:58:55 +1300 Subject: Implement unary `array.zip`, closing #2478 (#2491) --- crates/typst/src/eval/array.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'crates') diff --git a/crates/typst/src/eval/array.rs b/crates/typst/src/eval/array.rs index bee3fae7..f139907f 100644 --- a/crates/typst/src/eval/array.rs +++ b/crates/typst/src/eval/array.rs @@ -473,9 +473,18 @@ impl Array { #[variadic] others: Vec, ) -> SourceResult { - // Fast path for just two arrays. let mut args = args; - if args.remaining() <= 1 { + + // Fast path for one array. + if args.remaining() == 0 { + return Ok(self + .iter() + .map(|item| array![item.clone()].into_value()) + .collect()); + } + + // Fast path for just two arrays. + if args.remaining() == 1 { let other = args.expect::("others")?; args.finish()?; return Ok(self -- cgit v1.2.3