use guppy::{CargoMetadata, Error, PackageId, graph::DependencyDirection};
use std::iter;
fn main() -> Result<(), Error> {
let metadata = CargoMetadata::parse_json(include_str!("../../fixtures/small/metadata1.json"))?;
let package_graph = metadata.build_graph()?;
let package_id = PackageId::new("testcrate 0.1.0 (path+file:///fakepath/testcrate)");
let package = package_graph.metadata(&package_id).unwrap();
for link in package.direct_links() {
println!("direct: {}", link.to().id());
}
let query = package_graph.query_forward(iter::once(&package_id))?;
let package_set = query.resolve();
for dep_id in package_set.package_ids(DependencyDirection::Forward) {
println!("transitive: {dep_id}");
}
Ok(())
}