Skip to main content

Module patterns

Module patterns 

Source
Expand description

Pattern detection module for design pattern mining

This module provides single-pass pattern extraction across codebases. Addresses blockers: A5 (multi-pass overhead), A23 (parse error handling)

§Architecture

The pattern detection framework uses a single-pass approach:

  1. Parse each file once into AST
  2. Walk AST once, collecting signals for ALL patterns
  3. Convert signals to patterns after walk
  4. Aggregate patterns across files

§Example

use tldr_core::patterns::{PatternMiner, PatternConfig};

let miner = PatternMiner::new(PatternConfig::default());
let report = miner.mine_patterns(Path::new("src"), None)?;

Re-exports§

pub use constraints::generate_constraints;
pub use constraints::DetectedPatterns;
pub use detector::PatternDetector;
pub use signals::PatternSignals;

Modules§

api_conventions
API convention pattern detection
async_patterns
Async/concurrency pattern detection
constraints
LLM constraint generation from detected patterns
detector
Pattern detector - Single-pass AST walker for pattern extraction
error_handling
Error handling pattern detection
format
Text formatting for pattern reports
import_patterns
Import organization pattern detection
language_profile
Language profile definitions for data-driven pattern detection.
languages
Language profile modules for post-migration languages.
naming
Naming convention pattern detection
resource_mgmt
Resource management pattern detection
signals
Pattern signals - Accumulated signals from single AST walk
soft_delete
Soft delete pattern detection
test_idioms
Test idiom pattern detection
type_coverage
Type annotation coverage pattern detection
validation
Input validation pattern detection

Structs§

PatternConfig
Configuration for pattern mining
PatternMiner
Pattern miner that performs single-pass extraction across codebases

Traits§

HasConfidence
Trait for patterns with a confidence score

Functions§

detect_patterns
Detect patterns from a path (convenience function)
detect_patterns_with_config
Detect patterns with custom configuration