aboutsummaryrefslogtreecommitdiff
path: root/src/format.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/format.rs')
-rw-r--r--src/format.rs21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/format.rs b/src/format.rs
index f72ed39..ec2dc7a 100644
--- a/src/format.rs
+++ b/src/format.rs
@@ -28,7 +28,7 @@ pub struct Format<'a, I> {
inner: RefCell<Option<I>>,
}
-pub fn new_format<'a, I, F>(iter: I, separator: &'a str, f: F) -> FormatWith<'a, I, F>
+pub fn new_format<I, F>(iter: I, separator: &str, f: F) -> FormatWith<'_, I, F>
where I: Iterator,
F: FnMut(I::Item, &mut dyn FnMut(&dyn fmt::Display) -> fmt::Result) -> fmt::Result
{
@@ -38,7 +38,7 @@ pub fn new_format<'a, I, F>(iter: I, separator: &'a str, f: F) -> FormatWith<'a,
}
}
-pub fn new_format_default<'a, I>(iter: I, separator: &'a str) -> Format<'a, I>
+pub fn new_format_default<I>(iter: I, separator: &str) -> Format<'_, I>
where I: Iterator,
{
Format {
@@ -59,13 +59,12 @@ impl<'a, I, F> fmt::Display for FormatWith<'a, I, F>
if let Some(fst) = iter.next() {
format(fst, &mut |disp: &dyn fmt::Display| disp.fmt(f))?;
- for elt in iter {
- if self.sep.len() > 0 {
-
+ iter.try_for_each(|elt| {
+ if !self.sep.is_empty() {
f.write_str(self.sep)?;
}
- format(elt, &mut |disp: &dyn fmt::Display| disp.fmt(f))?;
- }
+ format(elt, &mut |disp: &dyn fmt::Display| disp.fmt(f))
+ })?;
}
Ok(())
}
@@ -84,12 +83,12 @@ impl<'a, I> Format<'a, I>
if let Some(fst) = iter.next() {
cb(&fst, f)?;
- for elt in iter {
- if self.sep.len() > 0 {
+ iter.try_for_each(|elt| {
+ if !self.sep.is_empty() {
f.write_str(self.sep)?;
}
- cb(&elt, f)?;
- }
+ cb(&elt, f)
+ })?;
}
Ok(())
}