Crate cargo_config2
source ·Expand description
Load and resolve Cargo configuration.
This library is intended to accurately emulate the actual behavior of Cargo configuration, for example, this supports the following behaviors:
- Hierarchical structure and merge
- Environment variables and relative paths resolution.
target.<triple>andtarget.<cfg>resolution.
Supported tables and fields are mainly based on cargo-llvm-cov’s use cases, but feel free to submit an issue if you see something missing in your use case.
Examples
// Read config files hierarchically from the current directory, merge them,
// apply environment variables, and resolve relative paths.
let config = cargo_config2::Config::load()?;
let target = "x86_64-unknown-linux-gnu";
// Resolve target-specific configuration (`target.<triple>` and `target.<cfg>`),
// and returns the resolved rustflags for `target`.
let rustflags = config.rustflags(target)?;
println!("{rustflags:?}");See also the get example that partial re-implementation of cargo config get using cargo-config2.
Re-exports
Modules
Cargo configuration that environment variables, config overrides, and
target-specific configurations have not been resolved.
Structs
The
[build] table.Cargo configuration.
The
[doc] table.An error that occurred during parsing the Dependabot configuration.
A representation of rustflags and rustdocflags.
The
[future-incompat-report] table.The
[net] table.A list of string.
A
[target.<triple>] or [target.<cfg>] table.The
[term] table.An iterator over Cargo configuration file paths.