Skip to content

Commit 1aec830

Browse files
committed
use fold()
1 parent 44f8a55 commit 1aec830

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

Diff for: crates/cli-support/src/js/binding.rs

+18-10
Original file line numberDiff line numberDiff line change
@@ -234,13 +234,16 @@ impl<'a, 'b> Builder<'a, 'b> {
234234
code.push('(');
235235
if variadic {
236236
if let Some((last, non_variadic_args)) = function_args.split_last() {
237-
code.push_str(
238-
&non_variadic_args
239-
.iter()
240-
.map(|v| v.name.as_str())
241-
.collect::<Vec<_>>()
242-
.join(", "),
243-
);
237+
code.push_str(&non_variadic_args.iter().enumerate().fold(
238+
String::new(),
239+
|acc, (i, v)| {
240+
if i == 0 {
241+
v.name.clone()
242+
} else {
243+
format!("{}, {}", acc, v.name.as_str())
244+
}
245+
},
246+
));
244247
if !non_variadic_args.is_empty() {
245248
code.push_str(", ");
246249
}
@@ -250,9 +253,14 @@ impl<'a, 'b> Builder<'a, 'b> {
250253
code.push_str(
251254
&function_args
252255
.iter()
253-
.map(|v| v.name.as_str())
254-
.collect::<Vec<_>>()
255-
.join(", "),
256+
.enumerate()
257+
.fold(String::new(), |acc, (i, v)| {
258+
if i == 0 {
259+
v.name.clone()
260+
} else {
261+
format!("{}, {}", acc, v.name.as_str())
262+
}
263+
}),
256264
);
257265
}
258266
code.push_str(") {\n");

0 commit comments

Comments
 (0)