Expand description
§QuickMark Linter Core
§Single-Use Architecture Contract
IMPORTANT: All linter components in this crate follow a strict single-use contract:
- Context: One context instance per document analysis
- MultiRuleLinter: One linter instance per document analysis
- RuleLinter: Individual rule linters are used once and discarded
This design eliminates state management complexity.
§Usage Pattern
use quickmark_core::linter::MultiRuleLinter;
use quickmark_core::config::QuickmarkConfig;
use std::path::PathBuf;
// Example usage (variables would be provided by your application)
// Correct: Fresh instances for each document
let mut linter = MultiRuleLinter::new_for_document(path, config, source);
let violations = linter.analyze();
// linter is now invalid - create new one for next document