Crate scribe_patterns

Crate scribe_patterns 

Source
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§

PatternBuilder
Pattern matching builder for fluent API construction
QuickMatcher
Quick pattern matching utility for simple use cases

Constants§

VERSION
Current version of the patterns crate