[−][src]Crate krates
Transforms the output of cargo metadata
into a graph, Krates
, where
crates are nodes and dependency links are edges.
use krates::{Builder, Cmd, Krates, cm, petgraph}; fn main() -> Result<(), krates::Error> { let mut cmd = Cmd::new(); cmd.manifest_path("path/to/a/Cargo.toml"); // Enable all features, works for either an entire workspace or a single crate cmd.all_features(); let mut builder = Builder::new(); // Let's filter out any crates that aren't used by x86_64 windows builder.include_targets(std::iter::once(("x86_64-pc-windows-msvc", vec![]))); let krates: Krates = builder.build(cmd, |pkg: cm::Package| { println!("Crate {} was filtered out", pkg.id); })?; // Print a dot graph of the entire crate graph println!("{:?}", petgraph::dot::Dot::new(krates.graph())); Ok(()) }
Re-exports
pub use cargo_metadata as cm; |
pub use cfg_expr; |
pub use petgraph; |
pub use semver; |
Structs
Builder | A builder used to create a Krates graph, either by running a cargo metadata
command, or using an already deserialized |
Cmd | An alternative to cargo_metadata::MetadataCommand which allows correct feature usage, as well as ensuring that the command can run successfully regardless of where it is executed and on what. |
Edge | The default type used for edges in the crate graph. |
Krates | A crate graph. Each unique crate is a node, and each unique dependency between 2 crates is an edge. |
Node | A node in the crate graph. |
NoneFilter | For when you just want to satisfy OnFilter without doing anything |
PkgSpec | A package specification. See cargo pkgid for more information on this. |
Enums
DepKind | The dependency kind. A crate can depend on the same crate multiple times with different dependency kinds |
Error | Errors that can occur when acquiring metadata to create a graph from |
Scope | The scope for which a dependency kind will be ignored |
Traits
KrateDetails | A trait that can be applied to the type stored in the graph nodes to give
additional features on |
Type Definitions
Kid | A crate's unique identifier |
NodeId | A node identifier. |