summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2019-04-25 09:55:50 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2019-04-25 09:56:25 +0200
commit150aa2a70684c9a3069a1263306001e894305bce (patch)
tree54258606207ada470481e1d48b4db5b1ab41750b
parent430705439de90327be98d2cc3ae658cdce9edf9f (diff)
Refactor: Add helper for writing output
-rw-r--r--src/frontend/json.rs19
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)?)
}
}