From e27a71016c222134a933464ce46a26925cc013bf Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Tue, 6 Apr 2021 11:27:49 +0200 Subject: Rewrite CLI to use buffer API Signed-off-by: Matthias Beyer --- src/backend.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/backend.rs b/src/backend.rs index efc6f37..feba9d9 100644 --- a/src/backend.rs +++ b/src/backend.rs @@ -3,7 +3,7 @@ use clap::ArgMatches; use librepology::v1::api::Api; use librepology::v1::error::Result; use librepology::v1::restapi::RestApi; -use librepology::v1::stdinapi::StdinWrapper; +use librepology::v1::buffer::BufferApi; use librepology::v1::types::*; use crate::config::Configuration; @@ -11,7 +11,7 @@ use crate::config::Configuration; /// Helper type for cli implementation /// for being transparent in what backend we use pub enum Backend { - Stdin(StdinWrapper), + Buffer(BufferApi), RepologyOrg(RestApi), } @@ -21,30 +21,30 @@ pub enum Backend { impl Api for Backend { fn project>(&self, name: N) -> Result> { match self { - Backend::Stdin(inner) => inner.project(name), + Backend::Buffer(inner) => inner.project(name), Backend::RepologyOrg(inner) => inner.project(name), } } fn problems_for_repo>(&self, repo: R) -> Result> { match self { - Backend::Stdin(inner) => inner.problems_for_repo(repo), + Backend::Buffer(inner) => inner.problems_for_repo(repo), Backend::RepologyOrg(inner) => inner.problems_for_repo(repo), } } fn problems_for_maintainer>(&self, maintainer: M) -> Result> { match self { - Backend::Stdin(inner) => inner.problems_for_maintainer(maintainer), + Backend::Buffer(inner) => inner.problems_for_maintainer(maintainer), Backend::RepologyOrg(inner) => inner.problems_for_maintainer(maintainer), } } } -pub fn new_backend(app: &ArgMatches, config: &Configuration) -> Result { +pub fn new_backend(app: &ArgMatches, config: &Configuration) -> anyhow::Result { if app.is_present("input_stdin") { trace!("Building new STDIN backend"); - Ok(Backend::Stdin(StdinWrapper::from(::std::io::stdin()))) + BufferApi::read_from(std::io::stdin()).map(Backend::Buffer).map_err(anyhow::Error::from) } else { trace!("Building new remote backend"); let url = config.repology_url().as_str().into(); -- cgit v1.2.3