diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2019-04-25 09:52:53 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2019-04-25 09:56:25 +0200 |
commit | 66c91849ebd5e4b1161704a79527f3145b03208f (patch) | |
tree | 6afd5b688982d81f181231b1402fc24114f606dc | |
parent | 524336a3335aaf49274a3bc4a177990c791a75c7 (diff) |
Refactor: Add helper function for constructing table object
-rw-r--r-- | src/frontend/table.rs | 41 |
1 files changed, 9 insertions, 32 deletions
diff --git a/src/frontend/table.rs b/src/frontend/table.rs index ba5c21d..2440161 100644 --- a/src/frontend/table.rs +++ b/src/frontend/table.rs @@ -20,10 +20,8 @@ impl TableFrontend { pub fn new(stdout: Stdout) -> Self { TableFrontend(stdout) } -} -impl Frontend for TableFrontend { - fn list_packages(&self, packages: Vec<Package>) -> Result<()> { + fn mktable(&self) -> Table { let mut table = Table::new(); let format = format::FormatBuilder::new() .column_separator('|') @@ -35,9 +33,14 @@ impl Frontend for TableFrontend { .padding(1, 1) .build(); table.set_format(format); - table.set_titles(row!["Name", "Version", "Repo", "Status", "URL"]); + table + } +} +impl Frontend for TableFrontend { + fn list_packages(&self, packages: Vec<Package>) -> Result<()> { + let mut table = self.mktable(); packages.iter().for_each(|package| { let status = if let Some(stat) = package.status() { format!("{}", stat) @@ -65,20 +68,7 @@ impl Frontend for TableFrontend { } fn list_problems(&self, problems: Vec<Problem>) -> Result<()> { - let mut table = Table::new(); - let format = format::FormatBuilder::new() - .column_separator('|') - .borders('|') - .separators( - &[format::LinePosition::Title, format::LinePosition::Top, format::LinePosition::Bottom], - format::LineSeparator::new('-', '+', '+', '+') - ) - .padding(1, 1) - .build(); - table.set_format(format); - - table.set_titles(row!["Repo", "Name", "EffName", "Maintainer", "Description"]); - + let mut table = self.mktable(); problems.iter().for_each(|problem| { trace!("Adding row for: {:?}", problem); table.add_row(row![ @@ -97,20 +87,7 @@ impl Frontend for TableFrontend { } fn compare_packages(&self, packages: Vec<ComparePackage>, backend: &Backend, filter_repos: Vec<Repo>) -> Result<()> { - let mut table = Table::new(); - let format = format::FormatBuilder::new() - .column_separator('|') - .borders('|') - .separators( - &[format::LinePosition::Title, format::LinePosition::Top, format::LinePosition::Bottom], - format::LineSeparator::new('-', '+', '+', '+') - ) - .padding(1, 1) - .build(); - table.set_format(format); - - table.set_titles(row!["Name", "Local Version", "Repo", "Upstream Version"]); - + let mut table = self.mktable(); for package in packages { backend .project(package.name().deref())? |