summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-10-13 19:48:38 +0200
committerMatthias Beyer <mail@beyermatthias.de>2020-10-13 19:48:38 +0200
commitd99006bfb1992b67af6360345befbc1137b19b50 (patch)
tree6298efbc1fe2c3a5bb1944e1f430fb031540efa6
parenta3afaa5846726e5ff8569426668e390b4d83dc58 (diff)
Remove VersionParser, which is implemented with a simple TryInto<>
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r--src/main.rs3
-rw-r--r--src/package/mod.rs3
-rw-r--r--src/package/package.rs6
-rw-r--r--src/package/tree.rs15
-rw-r--r--src/package/util.rs24
-rw-r--r--src/package/version.rs26
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))
- }
-}
-