fn extra_deps_as_targeted_deps()

in crate_universe/src/consolidator.rs [115:191]


    fn extra_deps_as_targeted_deps<I>(
        target_triples_filter: &BTreeSet<String>,
        extra_bazel_deps: I,
        extra_bazel_data_deps: I,
        extra_build_script_bazel_deps: I,
        extra_build_script_bazel_data_deps: I,
    ) -> Vec<CrateTargetedDepContext>
    where
        I: IntoIterator<Item = (String, Vec<String>)>,
    {
        let mut crate_targeted_dep_contexts: BTreeMap<String, CrateTargetedDepContext> =
            Default::default();

        let into_buildable_dependency = |dep: &String| BuildableDependency {
            name: "".to_string(),
            version: Version::new(0, 0, 0),
            buildable_target: dep.clone(),
            is_proc_macro: false,
        };

        extra_bazel_deps.into_iter().for_each(|(target, deps)| {
            let targeted_dep_context = crate_targeted_dep_contexts
                .entry(target.clone())
                .or_insert_with(|| Self::targeted_dep_context_for(&target, target_triples_filter));
            targeted_dep_context
                .deps
                .dependencies
                .extend(deps.iter().map(into_buildable_dependency));
        });
        extra_bazel_data_deps
            .into_iter()
            .for_each(|(target, deps)| {
                let targeted_dep_context = crate_targeted_dep_contexts
                    .entry(target.clone())
                    .or_insert_with(|| {
                        Self::targeted_dep_context_for(&target, target_triples_filter)
                    });
                targeted_dep_context
                    .deps
                    .data_dependencies
                    .extend(deps.iter().map(into_buildable_dependency));
            });

        extra_build_script_bazel_deps
            .into_iter()
            .for_each(|(target, deps)| {
                let targeted_dep_context = crate_targeted_dep_contexts
                    .entry(target.clone())
                    .or_insert_with(|| {
                        Self::targeted_dep_context_for(&target, target_triples_filter)
                    });
                targeted_dep_context
                    .deps
                    .build_dependencies
                    .extend(deps.iter().map(into_buildable_dependency));
            });

        extra_build_script_bazel_data_deps
            .into_iter()
            .for_each(|(target, deps)| {
                let targeted_dep_context = crate_targeted_dep_contexts
                    .entry(target.clone())
                    .or_insert_with(|| {
                        Self::targeted_dep_context_for(&target, target_triples_filter)
                    });
                targeted_dep_context
                    .deps
                    .build_data_dependencies
                    .extend(deps.iter().map(into_buildable_dependency));
            });

        crate_targeted_dep_contexts
            .into_iter()
            .sorted()
            .map(|(_, targeted_dep_context)| targeted_dep_context)
            .collect()
    }