From 150aa2a70684c9a3069a1263306001e894305bce Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Thu, 25 Apr 2019 09:55:50 +0200 Subject: Refactor: Add helper for writing output --- src/frontend/json.rs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/frontend/json.rs b/src/frontend/json.rs index b9d2007..39e86f8 100644 --- a/src/frontend/json.rs +++ b/src/frontend/json.rs @@ -28,19 +28,21 @@ impl JsonFrontend { pub fn new(stdout: Stdout) -> Self { JsonFrontend(stdout) } + + fn write(&self, output: String) -> Result<()> { + let mut outlock = self.0.lock(); + writeln!(outlock, "{}", output).map_err(Error::from) + } } impl Frontend for JsonFrontend { fn list_packages(&self, packages: Vec) -> Result<()> { - let output = serde_json::ser::to_string_pretty(&packages).map_err(Error::from)?; - let mut outlock = self.0.lock(); - writeln!(outlock, "{}", output).map_err(Error::from) + self.write(serde_json::ser::to_string_pretty(&packages).map_err(Error::from)?) + } fn list_problems(&self, problems: Vec) -> Result<()> { - let output = serde_json::ser::to_string_pretty(&problems).map_err(Error::from)?; - let mut outlock = self.0.lock(); - writeln!(outlock, "{}", output).map_err(Error::from) + self.write(serde_json::ser::to_string_pretty(&problems).map_err(Error::from)?) } fn compare_packages(&self, packages: Vec, backend: &Backend, filter_repos: Vec) -> Result<()> { @@ -80,10 +82,7 @@ impl Frontend for JsonFrontend { }); } - let output = serde_json::ser::to_string_pretty(&output)?; - - let mut outlock = self.0.lock(); - writeln!(outlock, "{}", output).map_err(Error::from) + self.write(serde_json::ser::to_string_pretty(&output)?) } } -- cgit v1.2.3