From 0b4b45ed731236997db49b291efa5348c22e0831 Mon Sep 17 00:00:00 2001 From: steven-omaha <35634100+steven-omaha@users.noreply.github.com> Date: Thu, 12 Jan 2023 15:30:55 +0100 Subject: [PATCH] fix bug in show --- src/core.rs | 9 +++++++-- src/grouping/group.rs | 8 +++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/core.rs b/src/core.rs index 42d53c8..9c1eb3a 100644 --- a/src/core.rs +++ b/src/core.rs @@ -170,11 +170,16 @@ impl Pacdef { } fn show_group_content(&self, groups: &ArgMatches) -> Result<()> { - let groups = groups.get_many::("group").unwrap(); - for arg_group in groups { + let mut iter = groups.get_many::("group").unwrap().peekable(); + + while let Some(arg_group) = iter.next() { let group = self.groups.iter().find(|g| g.name == *arg_group).unwrap(); println!("{group}"); + if iter.peek().is_some() { + println!(); + } } + Ok(()) } diff --git a/src/grouping/group.rs b/src/grouping/group.rs index aa323ca..a12e755 100644 --- a/src/grouping/group.rs +++ b/src/grouping/group.rs @@ -1,3 +1,4 @@ +use std::fmt::Write; use std::fs::read_to_string; use std::hash::Hash; use std::path::Path; @@ -102,8 +103,13 @@ impl Display for Group { let mut sections: Vec<_> = self.sections.iter().collect(); sections.sort_unstable(); - for section in sections { + let mut iter = sections.into_iter().peekable(); + + while let Some(section) = iter.next() { section.fmt(f)?; + if iter.peek().is_some() { + f.write_char('\n')?; + } } Ok(()) }