From 2224aa1061d01f4af1bf239a3e3739aa3d9493f1 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Tue, 29 Jun 2021 09:19:50 +0200 Subject: Refactor: Do not use Package::get_self_packaged_dependences() helper fn We need to refactor because we want, in the next step, add filters in the dependency-processing mechanism, where we filter out dependencies by their condition. Thus, using the Package::get_self_packaged_dependences() helper fn does not work anymore and we remove it with this patch. Signed-off-by: Matthias Beyer --- src/package/dag.rs | 32 +++++++++++++++++++++++++++++--- src/package/package.rs | 25 ------------------------- 2 files changed, 29 insertions(+), 28 deletions(-) (limited to 'src') 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> + '_ { - 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)] -- cgit v1.2.3