pub struct Engine { /* private fields */ }Expand description
Executes a set of rules against a pre-built FileIndex.
The engine owns a RuleRegistry so cross-file rules (e.g.
for_each_dir) can build nested rules on demand during evaluation.
Optional facts and vars (set via the builder chain) are evaluated
at run time and threaded into each rule’s Context and into the
when expression evaluator that gates rules.
Implementations§
Source§impl Engine
impl Engine
Sourcepub fn new(rules: Vec<Box<dyn Rule>>, registry: RuleRegistry) -> Self
pub fn new(rules: Vec<Box<dyn Rule>>, registry: RuleRegistry) -> Self
Backward-compatible: wrap each rule in a RuleEntry with no when.
Sourcepub fn from_entries(entries: Vec<RuleEntry>, registry: RuleRegistry) -> Self
pub fn from_entries(entries: Vec<RuleEntry>, registry: RuleRegistry) -> Self
Construct from rule entries (each carrying an optional when).
pub fn with_fix_size_limit(self, limit: Option<u64>) -> Self
pub fn with_facts(self, facts: Vec<FactSpec>) -> Self
pub fn with_vars(self, vars: HashMap<String, String>) -> Self
pub fn rule_count(&self) -> usize
pub fn run(&self, root: &Path, index: &FileIndex) -> Result<Report>
Sourcepub fn fix(
&self,
root: &Path,
index: &FileIndex,
dry_run: bool,
) -> Result<FixReport>
pub fn fix( &self, root: &Path, index: &FileIndex, dry_run: bool, ) -> Result<FixReport>
Evaluate every rule and apply fixers for their violations.
Fixes run sequentially — rules whose fixers touch the filesystem
must not race. Rules with no fixer contribute
FixStatus::Unfixable entries so the caller sees them in the
report. Rules that pass (no violations) are omitted from the
result, same as Engine::run’s usual behaviour.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Engine
impl !RefUnwindSafe for Engine
impl Send for Engine
impl Sync for Engine
impl Unpin for Engine
impl UnsafeUnpin for Engine
impl !UnwindSafe for Engine
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more