Crate cargo_toml
source ·Expand description
This crate defines struct
s that can be deserialized with Serde
to load and inspect Cargo.toml
metadata.
See Manifest::from_path
. Note that Cargo.toml
files are not self-contained. Correct interpretation of the manifest requires other files on disk:
- List of files in order to auto-discover binaries, examples, benchmarks, and tests.
- Potentially a
Manifest
from one of parent directories, that acts as a workspace root for inheritance of shared workspace information.
Because of this filesystem-dependence, loading Cargo.toml
from a string is an advanced operation.
The crate has methods for processing this information, but if you don’t already have a full crate on disk, you will need to write some glue code to obtain it. See Manifest::complete_from_path_and_workspace
.
Modules§
- features
features
Helper for parsing the microsyntax of the[features]
section and computing implied features from optional dependencies.
Structs§
- In badges section of Cargo.toml
[badges]
section ofCargo.toml
, deprecated by crates-io exceptmaintenance
.- When definition of a dependency is more than just a version string.
AbstractFilesystem
implementation for real files.- When a dependency is defined as
{ workspace = true }
, and workspace data hasn’t been applied yet. [lints]
section.- A
Badges
field withMaintenanceStatus
. - The top-level
Cargo.toml
structure. This is the main type in this library. - The
[package]
section of theManifest
. This is where crate properties are. - Workspace can predefine properties that can be inherited via
{ workspace = true }
in its member packages. - Cargo uses the term “target” for both “target platform” and “build target” (the thing to build), which makes it ambigous. Here Cargo’s bin/lib target is renamed to product.
- Compilation/optimization settings for a workspace
- Build-in an custom build/optimization settings
- Dependencies that are platform-specific or enabled through custom
cfg()
. - A manifest can contain both a package and workspace-wide properties
Enums§
- Verbosity of debug info in a
Profile
- Dependency definition. Note that this struct doesn’t carry it’s key/name, which you need to read from its section.
- Edition setting, which opts in to new Rust/Cargo behaviors.
- In this crate’s
Result
s. - Placeholder for a property that may be missing from its package, and needs to be copied from a
Workspace
. - Lint definition.
- Lint level.
- Handling of LTO in a build profile
- Mainly used to deprecate crates.
- A way specify or disable README or
build.rs
. - Forbids or selects custom registry
- Handling of debug symbols in a build profile
- Representation of a TOML value.
Traits§
- This crate supports reading
Cargo.toml
not only from a real directory, but also directly from other sources, like tarballs or bare git repos (BYO directory reader).
Type Aliases§
- Dependencies. The keys in this map are not always crate names, this can be overriden by the
package
field, and there may be multiple copies of the same crate. Optional dependencies may create implicit features, see thefeatures
module for dealing with this. - The
[features]
section. This set may be incomplete! - Lint groups such as [lints.rust].
- A set of lints.
- Locally replace dependencies
- Config target (see
parse_cfg
crate) + deps for the target.