features: &'a FeatureMap,
manifest_path: &'a str,
metadata: Option<&'a toml::Value>,
+ authors: &'a [String],
+ categories: &'a [String],
+ keywords: &'a [String],
+ readme: Option<&'a str>,
+ repository: Option<&'a str>
}
impl ser::Serialize for Package {
let license = manmeta.license.as_ref().map(String::as_ref);
let license_file = manmeta.license_file.as_ref().map(String::as_ref);
let description = manmeta.description.as_ref().map(String::as_ref);
+ let authors = manmeta.authors.as_ref();
+ let categories = manmeta.categories.as_ref();
+ let keywords = manmeta.keywords.as_ref();
+ let readme = manmeta.readme.as_ref().map(String::as_ref);
+ let repository = manmeta.repository.as_ref().map(String::as_ref);
SerializedPackage {
name: &*package_id.name(),
features: summary.features(),
manifest_path: &self.manifest_path.display().to_string(),
metadata: self.manifest.custom_metadata(),
+ authors,
+ categories,
+ keywords,
+ readme,
+ repository,
}.serialize(s)
}
}
{
"packages": [
{
+ "authors": [
+ "wycats@example.com"
+ ],
+ "categories": [],
"name": "foo",
"version": "0.5.0",
"id": "foo[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
"license_file": null,
"description": null,
+ "readme": null,
+ "repository": null,
"targets": [
{
"kind": [
{
"packages": [
{
+ "authors": [],
+ "categories": [],
"name": "foo",
+ "readme": null,
+ "repository": null,
"version": "0.5.0",
"id": "foo[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
{
"packages": [
{
+ "authors": [],
+ "categories": [],
"name": "foo",
+ "readme": null,
+ "repository": null,
"version": "0.5.0",
"id": "foo[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
{
"packages": [
{
+ "authors": [],
+ "categories": [],
"dependencies": [],
+ "description": null,
"features": {},
"id": "baz 0.0.1 (registry+[..])",
+ "keywords": [],
"manifest_path": "[..]Cargo.toml",
"name": "baz",
+ "readme": null,
+ "repository": null,
"source": "registry+[..]",
"license": null,
"license_file": null,
"metadata": null
},
{
+ "authors": [],
+ "categories": [],
"dependencies": [
{
"features": [],
],
"features": {},
"id": "bar 0.0.1 (registry+[..])",
+ "keywords": [],
"manifest_path": "[..]Cargo.toml",
"name": "bar",
+ "readme": null,
+ "repository": null,
"source": "registry+[..]",
"license": null,
"license_file": null,
"metadata": null
},
{
+ "authors": [],
+ "categories": [],
"dependencies": [
{
"features": [],
],
"features": {},
"id": "foo 0.5.0 (path+file:[..]foo)",
+ "keywords": [],
"manifest_path": "[..]Cargo.toml",
"name": "foo",
+ "readme": null,
+ "repository": null,
"source": null,
"license": "MIT",
"license_file": null,
{
"packages": [
{
+ "authors": [],
+ "categories": [],
"name": "foo",
+ "readme": null,
+ "repository": null,
"version": "0.1.0",
"id": "foo[..]",
+ "keywords": [],
"license": null,
"license_file": null,
"description": null,
{
"packages": [
{
+ "authors": [],
+ "categories": [],
"name": "foo",
+ "readme": null,
+ "repository": null,
"version": "0.1.0",
"id": "foo[..]",
+ "keywords": [],
"license": null,
"license_file": null,
"description": null,
{
"packages": [
{
+ "authors": [
+ "wycats@example.com"
+ ],
+ "categories": [],
"name": "bar",
"version": "0.5.0",
"id": "bar[..]",
+ "readme": null,
+ "repository": null,
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
"metadata": null
},
{
+ "authors": [
+ "wycats@example.com"
+ ],
+ "categories": [],
"name": "baz",
+ "readme": null,
+ "repository": null,
"version": "0.5.0",
"id": "baz[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
{
"packages": [
{
+ "authors": [
+ "wycats@example.com"
+ ],
+ "categories": [],
"name": "bar",
+ "readme": null,
+ "repository": null,
"version": "0.5.0",
"id": "bar[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
"metadata": null
},
{
+ "authors": [
+ "wycats@example.com"
+ ],
+ "categories": [],
"name": "baz",
+ "readme": null,
+ "repository": null,
"version": "0.5.0",
"id": "baz[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,
const MANIFEST_OUTPUT: &str = r#"
{
"packages": [{
+ "authors": [
+ "wycats@example.com"
+ ],
+ "categories": [],
"name":"foo",
"version":"0.5.0",
"id":"foo[..]0.5.0[..](path+file://[..]/foo)",
"source":null,
"dependencies":[],
+ "keywords": [],
"license": null,
"license_file": null,
"description": null,
}],
"features":{},
"manifest_path":"[..]Cargo.toml",
- "metadata": null
+ "metadata": null,
+ "readme": null,
+ "repository": null
}],
"workspace_members": [ "foo 0.5.0 (path+file:[..]foo)" ],
"resolve": null,
{
"packages": [
{
+ "authors": [],
+ "categories": [],
"name": "foo",
+ "readme": null,
+ "repository": null,
"version": "0.1.0",
"id": "foo[..]",
+ "keywords": [],
"source": null,
"dependencies": [],
"license": null,