Expand description
§Scribe Patterns
Advanced pattern matching and search algorithms for the Scribe library. This crate provides high-performance pattern matching capabilities including glob patterns, gitignore integration, and flexible include/exclude logic.
§Features
- High-Performance Glob Matching: Using
globset
for efficient pattern compilation - Gitignore Integration: Full gitignore syntax support with proper precedence
- Include/Exclude Logic: Complex pattern combinations with comma-separated input
- Path Normalization: Cross-platform path handling and matching
- Pattern Validation: Comprehensive error handling and pattern validation
- Caching: Efficient pattern compilation and matching with caching
§Usage
use scribe_patterns::{PatternMatcherBuilder, MatchResult};
use std::path::Path;
// Create a combined matcher with glob and gitignore patterns
let mut matcher = PatternMatcherBuilder::new()
.include("src/**/*.rs")
.exclude("target/**")
.respect_gitignore(true)
.base_path(".")
.build()?;
// Test if a path matches
let path = Path::new("src/lib.rs");
if matcher.should_process(path)? {
println!("Path is included: {}", path.display());
}
Re-exports§
pub use gitignore::GitignoreMatcher;
pub use gitignore::GitignorePattern;
pub use gitignore::GitignoreRule;
pub use gitignore::GitignoreStats;
pub use glob::GlobMatchResult;
pub use glob::GlobMatcher;
pub use glob::GlobOptions;
pub use glob::GlobPattern;
pub use matcher::MatchResult;
pub use matcher::MatcherOptions;
pub use matcher::PatternMatcher;
pub use matcher::PatternMatcherBuilder;
pub use validation::PatternValidator;
pub use validation::PerformanceRisk;
pub use validation::PerformanceRiskLevel;
pub use validation::ValidationConfig;
pub use validation::ValidationError;
pub use validation::ValidationResult;
Modules§
- gitignore
- Gitignore pattern handling with proper precedence and syntax support.
- glob
- High-performance glob pattern matching implementation.
- matcher
- presets
- Pre-configured pattern matchers for common use cases
- utils
- Utility functions for common pattern operations
- validation
Structs§
- Pattern
Builder - Pattern matching builder for fluent API construction
- Quick
Matcher - Quick pattern matching utility for simple use cases
Constants§
- VERSION
- Current version of the patterns crate