Struct cargo_metadata::Package

source ·
pub struct Package {
Show 17 fields pub name: String, pub version: String, pub authors: Vec<String>, pub id: String, pub description: Option<String>, pub dependencies: Vec<Dependency>, pub license: Option<String>, pub license_file: Option<PathBuf>, pub targets: Vec<Target>, pub features: HashMap<String, Vec<String>>, pub manifest_path: String, pub categories: Vec<String>, pub keywords: Vec<String>, pub readme: Option<String>, pub repository: Option<String>, pub edition: String, pub metadata: Value, /* private fields */
}
Expand description

A crate

Fields

name: String

Name as given in the Cargo.toml

version: String

Version given in the Cargo.toml

authors: Vec<String>

Authors given in the Cargo.toml

id: String

An opaque identifier for a package

description: Option<String>

Description as given in the Cargo.toml

dependencies: Vec<Dependency>

List of dependencies of this particular package

license: Option<String>

License as given in the Cargo.toml

license_file: Option<PathBuf>

If the package is using a nonstandard license, this key may be specified instead of license, and must point to a file relative to the manifest.

targets: Vec<Target>

Targets provided by the crate (lib, bin, example, test, …)

features: HashMap<String, Vec<String>>

Features provided by the crate, mapped to the features required by that feature.

manifest_path: String

Path containing the Cargo.toml

categories: Vec<String>

Categories as given in the Cargo.toml

keywords: Vec<String>

Keywords as given in the Cargo.toml

readme: Option<String>

Readme as given in the Cargo.toml

repository: Option<String>

Repository as given in the Cargo.toml

edition: String

Default Rust edition for the package

Beware that individual targets may specify their own edition in Target::edition.

metadata: Value

Contents of the free form package.metadata section

This contents can be serialized to a struct using serde:

#[macro_use]
extern crate serde_json;
#[macro_use]
extern crate serde_derive;

#[derive(Debug, Deserialize)]
struct SomePackageMetadata {
    some_value: i32,
}

fn main() {
    let value = json!({
        "some_value": 42,
    });

    let package_metadata: SomePackageMetadata = serde_json::from_value(value).unwrap();
    assert_eq!(package_metadata.some_value, 42);
}

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Deserialize this value from the given Serde deserializer. Read more
Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.