aboutsummaryrefslogtreecommitdiff
path: root/crates/project_model/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/project_model/src/lib.rs')
-rw-r--r--crates/project_model/src/lib.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/crates/project_model/src/lib.rs b/crates/project_model/src/lib.rs
index a5b35ed95..8c6cf94c2 100644
--- a/crates/project_model/src/lib.rs
+++ b/crates/project_model/src/lib.rs
@@ -1,4 +1,19 @@
1//! FIXME: write short doc here 1//! In rust-analyzer, we maintain a strict separation between pure abstract
2//! semantic project model and a concrete model of a particular build system.
3//!
4//! Pure model is represented by the [`base_db::CrateGraph`] from another crate.
5//!
6//! In this crate, we are conserned with "real world" project models.
7//!
8//! Specifically, here we have a representation for a Cargo project
9//! ([`CargoWorkspace`]) and for manually specified layout ([`ProjectJson`]).
10//!
11//! Roughly, the things we do here are:
12//!
13//! * Project discovery (where's the relevant Cargo.toml for the current dir).
14//! * Custom build steps (`build.rs` code generation and compilation of
15//! procedural macros).
16//! * Lowering of concrete model to a [`base_db::CrateGraph`]
2 17
3mod cargo_workspace; 18mod cargo_workspace;
4mod cfg_flag; 19mod cfg_flag;