From fdc92cb2047f2d263daf74b2b06ebf741a8986b6 Mon Sep 17 00:00:00 2001 From: philipp Date: Sun, 24 Feb 2019 18:57:33 +0100 Subject: [PATCH] Reduce repetition --- src/main.rs | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 86dc922..730cd4a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -216,17 +216,16 @@ fn build_hyperfine_options(matches: &ArgMatches) -> Result ExportManager { let mut export_manager = ExportManager::new(); - if let Some(filename) = matches.value_of("export-asciidoc") { - export_manager.add_exporter(ExportType::Asciidoc, filename); - } - if let Some(filename) = matches.value_of("export-json") { - export_manager.add_exporter(ExportType::Json, filename); - } - if let Some(filename) = matches.value_of("export-csv") { - export_manager.add_exporter(ExportType::Csv, filename); - } - if let Some(filename) = matches.value_of("export-markdown") { - export_manager.add_exporter(ExportType::Markdown, filename); + { + let mut add_exporter = |flag, exporttype| { + if let Some(filename) = matches.value_of(flag) { + export_manager.add_exporter(exporttype, filename); + } + }; + add_exporter("export-asciidoc", ExportType::Asciidoc); + add_exporter("export-json", ExportType::Json); + add_exporter("export-csv", ExportType::Csv); + add_exporter("export-markdown", ExportType::Markdown); } export_manager }