Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
UebelAndre committed May 2, 2024
1 parent 23dbb6f commit 1503248
Showing 1 changed file with 30 additions and 30 deletions.
60 changes: 30 additions & 30 deletions crate_universe/src/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -588,49 +588,49 @@ impl TreeResolver {
}
let mut result = TreeResolverMetadata::new();
for (crate_id, tree_data) in metadata.into_iter() {
let common_features = tree_data
.iter()
.fold(
None,
|common: Option<BTreeSet<String>>, (_, data)| match common {
Some(common) => {
Some(common.intersection(&data.features).cloned().collect())
}
None => Some(data.features.clone()),
},
)
.unwrap_or_default();
let common_deps = tree_data
.iter()
.fold(
None,
|common: Option<BTreeSet<CrateId>>, (_, data)| match common {
Some(common) => Some(common.intersection(&data.deps).cloned().collect()),
None => Some(data.deps.clone()),
},
)
.unwrap_or_default();
let common = CargoTreeEntry {
features: tree_data
.iter()
.fold(
None,
|common: Option<BTreeSet<String>>, (_, data)| match common {
Some(common) => {
Some(common.intersection(&data.features).cloned().collect())
}
None => Some(data.features.clone()),
},
)
.unwrap_or_default(),
deps: tree_data
.iter()
.fold(
None,
|common: Option<BTreeSet<CrateId>>, (_, data)| match common {
Some(common) => {
Some(common.intersection(&data.deps).cloned().collect())
}
None => Some(data.deps.clone()),
},
)
.unwrap_or_default(),
};
let mut select: Select<CargoTreeEntry> = Select::default();
for (target_triple, data) in tree_data {
let mut entry = CargoTreeEntry::new();
entry.features.extend(
data.features
.into_iter()
.filter(|f| !common_features.contains(f)),
.filter(|f| !common.features.contains(f)),
);
entry
.deps
.extend(data.deps.into_iter().filter(|d| !common_deps.contains(d)));
.extend(data.deps.into_iter().filter(|d| !common.deps.contains(d)));
if !entry.is_empty() {
select.insert(entry, Some(target_triple.to_bazel()));
}
}
let entry = CargoTreeEntry {
features: common_features,
deps: common_deps,
};
if !entry.is_empty() {
select.insert(entry, None);
if !common.is_empty() {
select.insert(common, None);
}
result.insert(crate_id, select);
}
Expand Down

0 comments on commit 1503248

Please sign in to comment.