pedant_core/project/
context.rs1use std::path::Path;
2
3use crate::check_config::CheckConfig;
4use crate::violation::Violation;
5
6use super::cargo_meta::CargoMetadata;
7use super::shape::FileShape;
8use super::{feature_boundary, module_layout, type_footprint};
9
10pub struct ProjectContext<'a> {
14 pub rust_files: &'a [String],
16 pub workspace_root: &'a Path,
18 pub metadata: Option<&'a CargoMetadata>,
20 pub file_shapes: &'a [FileShape],
22}
23
24pub fn check_project(
30 ctx: &ProjectContext<'_>,
31 config: &CheckConfig,
32 violations: &mut Vec<Violation>,
33) {
34 module_layout::check_conflicting_module_root(ctx, config, violations);
35 module_layout::check_flat_module_family(ctx, config, violations);
36 feature_boundary::check_feature_boundary(ctx, config, violations);
37 type_footprint::check_type_footprint(ctx, config, violations);
38}