diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/package/dag.rs | 32 | ||||
-rw-r--r-- | src/package/package.rs | 25 |
2 files changed, 29 insertions, 28 deletions
diff --git a/src/package/dag.rs b/src/package/dag.rs index 46c0dc8..bf0c1fb 100644 --- a/src/package/dag.rs +++ b/src/package/dag.rs @@ -17,15 +17,17 @@ use anyhow::Error; use anyhow::Result; use anyhow::anyhow; use daggy::Walker; +use getset::Getters; use indicatif::ProgressBar; +use itertools::Itertools; use log::trace; use ptree::Style; use ptree::TreeItem; use resiter::AndThen; -use getset::Getters; use crate::package::Package; use crate::package::condition::ConditionData; +use crate::package::dependency::ParseDependency; use crate::repository::Repository; #[derive(Debug, Getters)] @@ -51,7 +53,19 @@ impl Dag { p: &'a Package, progress: Option<&ProgressBar> ) -> Result<()> { - p.get_self_packaged_dependencies() + let build_dependencies = p.dependencies() + .build() + .iter() + .map(|d| d.parse_as_name_and_version()); + + let runtime_dependencies = p.dependencies() + .runtime() + .iter() + .map(|d| d.parse_as_name_and_version()); + + build_dependencies + .chain(runtime_dependencies) + .unique_by(|res| res.as_ref().ok().cloned()) .and_then_ok(|(name, constr)| { trace!("Dependency for {} {} found: {:?}", p.name(), p.version(), name); let packs = repo.find_with_version(&name, &constr); @@ -82,7 +96,19 @@ impl Dag { fn add_edges(mappings: &HashMap<&Package, daggy::NodeIndex>, dag: &mut daggy::Dag<&Package, i8>) -> Result<()> { for (package, idx) in mappings { - package.get_self_packaged_dependencies() + let build_dependencies = package.dependencies() + .build() + .iter() + .map(|d| d.parse_as_name_and_version()); + + let runtime_dependencies = package.dependencies() + .runtime() + .iter() + .map(|d| d.parse_as_name_and_version()); + + build_dependencies + .chain(runtime_dependencies) + .unique_by(|res| res.as_ref().ok().cloned()) .and_then_ok(|(name, constr)| { mappings .iter() diff --git a/src/package/package.rs b/src/package/package.rs index 883ac1f..64c5bd0 100644 --- a/src/package/package.rs +++ b/src/package/package.rs @@ -11,9 +11,7 @@ use std::collections::HashMap; use std::path::PathBuf; -use anyhow::Result; use getset::Getters; -use itertools::Itertools; use serde::Deserialize; use serde::Serialize; @@ -21,7 +19,6 @@ use crate::package::dependency::*; use crate::package::name::*; use crate::package::source::*; use crate::package::version::*; -use crate::package::ParseDependency; use crate::package::{Phase, PhaseName}; use crate::util::docker::ImageName; use crate::util::EnvironmentVariableName; @@ -107,28 +104,6 @@ impl Package { self.dependencies = dependencies; } - pub fn get_self_packaged_dependencies( - &self, - ) -> impl Iterator<Item = Result<(PackageName, PackageVersionConstraint)>> + '_ { - let build_iter = self - .dependencies() - .build() - .iter() - .cloned() - .map(|d| d.parse_as_name_and_version()); - - let runtime_iter = self - .dependencies() - .runtime() - .iter() - .cloned() - .map(|d| d.parse_as_name_and_version()); - - build_iter - .chain(runtime_iter) - .unique_by(|res| res.as_ref().ok().cloned()) - } - /// Get a wrapper object around self which implements a debug interface with all details about /// the Package object #[cfg(debug_assertions)] |