From 0abe487f1cf5d31c4d6b44961cd8b3e8fe49ed30 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Wed, 6 Jan 2021 16:39:19 +0100 Subject: [PATCH] Document `project_model::PackageData` This adds a description for `PackageData` and all its fields. --- crates/project_model/src/cargo_workspace.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/crates/project_model/src/cargo_workspace.rs b/crates/project_model/src/cargo_workspace.rs index 1700cb8a716..006c66ae7f4 100644 --- a/crates/project_model/src/cargo_workspace.rs +++ b/crates/project_model/src/cargo_workspace.rs @@ -80,19 +80,35 @@ pub struct CargoConfig { pub type Target = Idx; +/// Information associated with a cargo crate #[derive(Debug, Clone, Eq, PartialEq)] pub struct PackageData { + /// Version given in the `Cargo.toml` pub version: String, + /// Name as given in the `Cargo.toml` pub name: String, + /// Path containing the `Cargo.toml` pub manifest: AbsPathBuf, + /// Targets provided by the crate (lib, bin, example, test, ...) pub targets: Vec, + /// Is this package a member of the current workspace pub is_member: bool, + /// List of packages this package depends on pub dependencies: Vec, + /// Rust edition for this package pub edition: Edition, + /// List of features to activate pub features: Vec, + /// List of config flags defined by this package's build script pub cfgs: Vec, + /// List of cargo-related environment variables with their value + /// + /// If the package has a build script which defines environment variables, + /// they can also be found here. pub envs: Vec<(String, String)>, + /// Directory where a build script might place its output pub out_dir: Option, + /// Path to the proc-macro library file if this package exposes proc-macros pub proc_macro_dylib_path: Option, }