Crate ra_ap_project_model[−][src]
Expand description
In rust-analyzer, we maintain a strict separation between pure abstract semantic project model and a concrete model of a particular build system.
Pure model is represented by the base_db::CrateGraph
from another crate.
In this crate, we are conserned with “real world” project models.
Specifically, here we have a representation for a Cargo project
(CargoWorkspace
) and for manually specified layout (ProjectJson
).
Roughly, the things we do here are:
- Project discovery (where’s the relevant Cargo.toml for the current dir).
- Custom build steps (
build.rs
code generation and compilation of procedural macros). - Lowering of concrete model to a
base_db::CrateGraph
Structs
BuildDataCollector | |
BuildDataResult | |
CargoConfig | |
CargoWorkspace |
|
PackageData | Information associated with a cargo crate |
PackageDependency | |
PackageRoot |
|
ProcMacroClient | |
ProjectJson | Roots and crates that compose this Rust project. |
ProjectJsonData | |
Sysroot | |
TargetData | Information associated with a package’s target |
Enums
ProjectManifest | |
ProjectWorkspace | |
RustcSource | Describes how to set the rustc source directory. |
TargetKind |
Type Definitions
Package | |
Target |