Struct cargo_toml::Manifest
source · [−]pub struct Manifest<Metadata = Value> {Show 15 fields
pub package: Option<Package<Metadata>>,
pub workspace: Option<Workspace<Metadata>>,
pub dependencies: DepsSet,
pub dev_dependencies: DepsSet,
pub build_dependencies: DepsSet,
pub target: TargetDepsSet,
pub features: FeatureSet,
pub patch: PatchSet,
pub lib: Option<Product>,
pub profile: Profiles,
pub badges: Badges,
pub bin: Vec<Product>,
pub bench: Vec<Product>,
pub test: Vec<Product>,
pub example: Vec<Product>,
}
Expand description
The top-level Cargo.toml
structure
The Metadata
is a type for [package.metadata]
table. You can replace it with
your own struct type if you use the metadata and don’t want to use the catch-all Value
type.
Fields
package: Option<Package<Metadata>>
workspace: Option<Workspace<Metadata>>
dependencies: DepsSet
dev_dependencies: DepsSet
build_dependencies: DepsSet
target: TargetDepsSet
features: FeatureSet
patch: PatchSet
lib: Option<Product>
Note that due to autolibs feature this is not the complete list
unless you run complete_from_path
profile: Profiles
badges: Badges
bin: Vec<Product>
Note that due to autobins feature this is not the complete list
unless you run complete_from_path
bench: Vec<Product>
test: Vec<Product>
example: Vec<Product>
Implementations
Parse contents of a Cargo.toml
file already loaded as a byte slice.
It does not call complete_from_path
, so may be missing implicit data.
Parse contents from a Cargo.toml
file on disk.
Calls complete_from_path
.
Parse Cargo.toml
, and parse its [package.metadata]
into a custom Serde-compatible type.package
It does not call complete_from_path
, so may be missing implicit data.
Parse contents from Cargo.toml
file on disk, with custom Serde-compatible metadata type.
Calls complete_from_path
Cargo.toml
doesn’t contain explicit information about [lib]
and [[bin]]
,
which are inferred based on files on disk.
This scans the disk to make the data in the manifest as complete as possible.
pub fn complete_from_abstract_filesystem(
&mut self,
fs: impl AbstractFilesystem
) -> Result<(), Error>
pub fn complete_from_abstract_filesystem(
&mut self,
fs: impl AbstractFilesystem
) -> Result<(), Error>
Cargo.toml
doesn’t contain explicit information about [lib]
and [[bin]]
,
which are inferred based on files on disk.
You can provide any implementation of directory scan, which doesn’t have to be reading straight from disk (might scan a tarball or a git repo, for example).
Trait Implementations
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl<Metadata> RefUnwindSafe for Manifest<Metadata> where
Metadata: RefUnwindSafe,
impl<Metadata> UnwindSafe for Manifest<Metadata> where
Metadata: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more