in guppy/src/graph/summaries.rs [48:82]
fn to_package_map(
&self,
initials: &FeatureSet<'g>,
direct_deps: &PackageSet<'g>,
) -> PackageMap {
self.packages_with_features(DependencyDirection::Forward)
.map(|feature_list| {
let package = feature_list.package();
let status = if initials.contains_package_ix(package.package_ix()) {
PackageStatus::Initial
} else if package.in_workspace() {
PackageStatus::Workspace
} else if direct_deps.contains_ix(package.package_ix()) {
PackageStatus::Direct
} else {
PackageStatus::Transitive
};
let info = PackageInfo {
status,
features: feature_list
.named_features()
.map(|feature| feature.to_owned())
.collect(),
optional_deps: feature_list
.optional_deps()
.map(|dep| dep.to_owned())
.collect(),
};
(feature_list.package().to_summary_id(), info)
})
.collect()
}