crate-metadata 0.1.1

Utility functions to get current crate metadata.
Documentation
extern crate serde;
extern crate serde_json;

use std::path::PathBuf;
use serde::Deserialize;
use serde::Serialize;
use serde_json::Value;


#[derive(Serialize, Deserialize, Debug)]
#[serde(bound(deserialize = "Metadata: Deserialize<'de>"))]
pub struct CargoMetadata<Metadata = Value> {
	pub packages: Vec<Package<Metadata>>,
	pub target_directory: PathBuf,
}


#[derive(Serialize, Deserialize, Debug)]
#[serde(bound(deserialize = "Metadata: Deserialize<'de>"))]
pub struct Package<Metadata> {
	pub name: String,
	pub authors: Vec<String>,
	pub version: String,
	pub description: Option<String>,
	pub manifest_path: String,
	pub targets: Vec<Target>,
	pub metadata: Option<Metadata>,
}


#[derive(Serialize, Deserialize, Debug)]
pub struct Target {
	pub kind: Vec<String>,
	pub crate_types: Vec<String>,
	pub name: String,
}