diff options
author | Matthias Beyer <matthias.beyer@atos.net> | 2019-04-25 09:55:50 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@atos.net> | 2019-04-25 09:56:25 +0200 |
commit | 150aa2a70684c9a3069a1263306001e894305bce (patch) | |
tree | 54258606207ada470481e1d48b4db5b1ab41750b | |
parent | 430705439de90327be98d2cc3ae658cdce9edf9f (diff) |
Refactor: Add helper for writing output
-rw-r--r-- | src/frontend/json.rs | 19 |
1 files 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<Package>) -> 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<Problem>) -> 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<ComparePackage>, backend: &Backend, filter_repos: Vec<Repo>) -> 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)?) } } |