diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-10-13 19:48:38 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-10-13 19:48:38 +0200 |
commit | d99006bfb1992b67af6360345befbc1137b19b50 (patch) | |
tree | 6298efbc1fe2c3a5bb1944e1f430fb031540efa6 | |
parent | a3afaa5846726e5ff8569426668e390b4d83dc58 (diff) |
Remove VersionParser, which is implemented with a simple TryInto<>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/main.rs | 3 | ||||
-rw-r--r-- | src/package/mod.rs | 3 | ||||
-rw-r--r-- | src/package/package.rs | 6 | ||||
-rw-r--r-- | src/package/tree.rs | 15 | ||||
-rw-r--r-- | src/package/util.rs | 24 | ||||
-rw-r--r-- | src/package/version.rs | 26 |
6 files changed, 13 insertions, 64 deletions
diff --git a/src/main.rs b/src/main.rs index 725821c..3b05388 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,7 +19,6 @@ use crate::repository::Repository; use crate::package::PackageName; use crate::package::PackageVersion; use crate::util::executor::DummyExecutor; -use crate::package::DummyVersionParser; use crate::package::Tree; #[tokio::main] @@ -57,7 +56,7 @@ async fn main() -> Result<()> { let bar = progressbars.root.add(tree_building_progress_bar(max_packages)); bar.set_message(&format!("Building Package Tree for {}", p.name())); let mut tree = Tree::new(); - tree.add_package(p, &repo, &DummyExecutor::new(), &DummyVersionParser::new(), &bar)?; + tree.add_package(p, &repo, &DummyExecutor::new(), &bar)?; Ok(tree) }) .collect::<Result<Vec<_>>>() diff --git a/src/package/mod.rs b/src/package/mod.rs index 92896a9..d2ef5f1 100644 --- a/src/package/mod.rs +++ b/src/package/mod.rs @@ -7,6 +7,3 @@ pub use util::*; mod tree; pub use tree::*; -mod version; -pub use version::*; - diff --git a/src/package/package.rs b/src/package/package.rs index 11baef9..230211b 100644 --- a/src/package/package.rs +++ b/src/package/package.rs @@ -6,12 +6,10 @@ use getset::Getters; use serde::Deserialize; use anyhow::Result; use anyhow::Error; -use anyhow::Context; use resiter::AndThen; use crate::phase::{PhaseName, Phase}; use crate::package::util::*; -use crate::package::version::VersionParser; use crate::util::docker::ImageName; use crate::util::executor::Executor; @@ -57,7 +55,7 @@ impl Package { /// /// Either return the list of dependencies or, if available, run the dependencies_script to /// read the dependencies from there. - pub fn get_all_dependencies(&self, executor: &dyn Executor, version_parser: &dyn VersionParser) -> Result<Vec<(PackageName, PackageVersionConstraint)>> { + pub fn get_all_dependencies(&self, executor: &dyn Executor) -> Result<Vec<(PackageName, PackageVersionConstraint)>> { use std::convert::TryInto; self.dependencies() @@ -75,7 +73,7 @@ impl Package { .cloned() .map(|d| d.try_into().map_err(Error::from)) }) - .and_then_ok(|d| version_parser.parse(&d).with_context(|| format!("Failed to parse: '{:?}'", d)).map_err(Error::from)) + .and_then_ok(|d| d.try_into().map_err(Error::from)) .collect() } } diff --git a/src/package/tree.rs b/src/package/tree.rs index 825cade..3237631 100644 --- a/src/package/tree.rs +++ b/src/package/tree.rs @@ -6,7 +6,6 @@ use indicatif::ProgressBar; use crate::repository::Repository; use crate::package::Package; -use crate::package::version::VersionParser; use crate::util::executor::Executor; pub struct Tree { @@ -19,11 +18,11 @@ impl Tree { Tree { root: BTreeMap::new() } } - pub fn add_package(&mut self, p: Package, repo: &Repository, executor: &dyn Executor, versionparser: &dyn VersionParser, progress: &ProgressBar) -> Result<()> { + pub fn add_package(&mut self, p: Package, repo: &Repository, executor: &dyn Executor, progress: &ProgressBar) -> Result<()> { macro_rules! mk_add_package_tree { - ($this:ident, $pack:ident, $repo:ident, $root:ident, $executor:ident, $versionparser:ident, $progress:ident) => {{ + ($this:ident, $pack:ident, $repo:ident, $root:ident, $executor:ident, $progress:ident) => {{ let mut subtree = Tree::new(); - ($pack).get_all_dependencies($executor, $versionparser)? + ($pack).get_all_dependencies($executor)? .into_iter() .map(|(name, constr)| { let pack = ($repo).find_with_version_constraint(&name, &constr); @@ -38,7 +37,7 @@ impl Tree { pack.into_iter() .map(|p| { ($progress).tick(); - add_package_tree(&mut subtree, p.clone(), ($repo), ($root), ($executor), ($versionparser), ($progress)) + add_package_tree(&mut subtree, p.clone(), ($repo), ($root), ($executor), ($progress)) }) .collect() }) @@ -49,11 +48,11 @@ impl Tree { }} }; - fn add_package_tree(this: &mut Tree, p: Package, repo: &Repository, root: &mut Tree, executor: &dyn Executor, versionparser: &dyn VersionParser, progress: &ProgressBar) -> Result<()> { - mk_add_package_tree!(this, p, repo, root, executor, versionparser, progress) + fn add_package_tree(this: &mut Tree, p: Package, repo: &Repository, root: &mut Tree, executor: &dyn Executor, progress: &ProgressBar) -> Result<()> { + mk_add_package_tree!(this, p, repo, root, executor, progress) } - mk_add_package_tree!(self, p, repo, self, executor, versionparser, progress) + mk_add_package_tree!(self, p, repo, self, executor, progress) } pub fn has_package(&self, p: &Package) -> bool { diff --git a/src/package/util.rs b/src/package/util.rs index bf093a3..c8a2975 100644 --- a/src/package/util.rs +++ b/src/package/util.rs @@ -9,8 +9,6 @@ use std::ops::Deref; use serde::Deserialize; use anyhow::Result; -use crate::package::version::NameVersionBuffer; - #[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)] #[serde(transparent)] pub struct PackageName(String); @@ -48,37 +46,21 @@ impl From<String> for PackageVersion { #[serde(transparent)] pub struct SystemDependency(String); -impl NameVersionBuffer for SystemDependency { - fn get_as_str(&self) -> &str { - &self.0 - } -} - #[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)] #[serde(transparent)] pub struct BuildDependency(String); -impl NameVersionBuffer for BuildDependency { - fn get_as_str(&self) -> &str { - &self.0 - } -} - #[derive(Deserialize, Clone, Debug, Hash, Eq, PartialEq, Ord, PartialOrd)] #[serde(transparent)] pub struct Dependency(String); -impl NameVersionBuffer for Dependency { - fn get_as_str(&self) -> &str { - &self.0 - } -} - impl std::convert::TryInto<(PackageName, PackageVersionConstraint)> for Dependency { type Error = anyhow::Error; fn try_into(self) -> RResult<(PackageName, PackageVersionConstraint), Self::Error> { - unimplemented!() + // TODO: Implement properly + let v: Vec<_> = self.0.split("-").collect(); + Ok((PackageName::from(String::from(v[0])), PackageVersionConstraint::Any)) } } diff --git a/src/package/version.rs b/src/package/version.rs deleted file mode 100644 index 3c6c93d..0000000 --- a/src/package/version.rs +++ /dev/null @@ -1,26 +0,0 @@ -use anyhow::Result; -use crate::package::PackageName; -use crate::package::PackageVersionConstraint; - -pub trait VersionParser { - fn parse(&self, buffer: &dyn NameVersionBuffer) -> Result<(PackageName, PackageVersionConstraint)>; -} - -pub trait NameVersionBuffer { - fn get_as_str(&self) -> &str; -} - -pub struct DummyVersionParser; -impl DummyVersionParser { - pub fn new() -> Self { - DummyVersionParser - } -} - -impl VersionParser for DummyVersionParser { - fn parse(&self, buffer: &dyn NameVersionBuffer) -> Result<(PackageName, PackageVersionConstraint)> { - let v: Vec<_> = buffer.get_as_str().split("-").collect(); - Ok((PackageName::from(String::from(v[0])), PackageVersionConstraint::Any)) - } -} - |