| Crates.io | cargo_pup_lint_config |
| lib.rs | cargo_pup_lint_config |
| version | 0.1.4 |
| created_at | 2025-06-03 16:07:27.717863+00 |
| updated_at | 2025-11-21 11:56:41.894506+00 |
| description | Configuration and rule builder utilities for cargo-pup architectural linting |
| homepage | https://github.com/datadog/cargo-pup |
| repository | https://github.com/datadog/cargo-pup |
| max_upload_size | |
| id | 1699242 |
| size | 131,513 |
Configuration and rule builder utilities for cargo-pup architectural linting.
This crate provides the programmatic builder interface for defining architectural lint rules. It offers type-safe, IDE-friendly APIs for creating complex architectural assertions about your Rust codebase.
Add this to your Cargo.toml:
[dev-dependencies]
cargo_pup_lint_config = "0.1.4"
use cargo_pup_lint_config::{LintBuilder, LintBuilderExt, ModuleLintExt, Severity};
#[test]
fn test_api_layer_isolation() {
let mut builder = LintBuilder::new();
builder.module_lint()
.lint_named("api_no_direct_db_access")
.matching(|m| m.module(".*::api::.*"))
.with_severity(Severity::Error)
.restrict_imports(None, Some(vec![".*::database::*".to_string()]))
.build();
builder.assert_lints(None).expect("API isolation rules should pass");
}
For more examples and documentation, visit the cargo-pup repository.