Skip to content
This repository has been archived by the owner on Dec 29, 2022. It is now read-only.

Commit

Permalink
Use modern API to get dep's extern crate name
Browse files Browse the repository at this point in the history
  • Loading branch information
matklad committed Aug 17, 2018
1 parent 482feaa commit b92815e
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions src/project_model.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,17 +81,23 @@ impl ProjectModel {
})
}
for pkg_id in resolve.iter() {
let deps = resolve.deps(&pkg_id)
.filter_map(|(dep_id, dep_specs)| {
let crate_name = dep_specs.iter()
.map(|d| d.name_in_toml().to_string())
.next()?;
Some(Dep {
crate_name,
pkg: pkg_id_to_pkg[dep_id],
})
}).collect::<Vec<_>>();
packages[pkg_id_to_pkg[pkg_id].0].deps = deps;
for (dep_id, _) in resolve.deps(&pkg_id) {
let pkg = cargo_packages.get(dep_id)?;
let lib = pkg.targets().iter().find(|t| t.is_lib());
if let Some(lib) = lib {
let crate_name = resolve.extern_crate_name(
&pkg_id,
&dep_id,
&lib,
)?;
packages[pkg_id_to_pkg[pkg_id].0].deps.push(
Dep {
crate_name,
pkg: pkg_id_to_pkg[dep_id],
}
)
}
}
}
Ok(ProjectModel { packages })
}
Expand Down

0 comments on commit b92815e

Please sign in to comment.