Skip to main content

Rule

Trait Rule 

Source
pub trait Rule: Send + Sync {
    // Required methods
    fn code(&self) -> &'static str;
    fn name(&self) -> &'static str;
    fn description(&self) -> &'static str;
    fn explanation(&self) -> &'static str;
    fn groups(&self) -> &[RuleGroup];
    fn is_fixable(&self) -> bool;
    fn crawl_type(&self) -> CrawlType;
    fn eval(&self, ctx: &RuleContext<'_>) -> Vec<LintViolation>;

    // Provided method
    fn configure(&mut self, _settings: &HashMap<String, String>) { ... }
}
Expand description

Trait that all lint rules must implement.

Required Methods§

Source

fn code(&self) -> &'static str

Rule code, e.g. “LT01”.

Source

fn name(&self) -> &'static str

Human-readable name, e.g. “layout.spacing”.

Source

fn description(&self) -> &'static str

One-line description.

Source

fn explanation(&self) -> &'static str

Multi-sentence explanation for AI consumers.

Source

fn groups(&self) -> &[RuleGroup]

Rule group.

Source

fn is_fixable(&self) -> bool

Can this rule auto-fix violations?

Source

fn crawl_type(&self) -> CrawlType

Which segments should be visited.

Source

fn eval(&self, ctx: &RuleContext<'_>) -> Vec<LintViolation>

Evaluate the rule at the given context, returning violations.

Provided Methods§

Source

fn configure(&mut self, _settings: &HashMap<String, String>)

Configure the rule with key-value settings from config. Default implementation is a no-op.

Implementors§

Source§

impl Rule for RuleAL01

Source§

impl Rule for RuleAL02

Source§

impl Rule for RuleAL03

Source§

impl Rule for RuleAL04

Source§

impl Rule for RuleAL05

Source§

impl Rule for RuleAL06

Source§

impl Rule for RuleAL07

Source§

impl Rule for RuleAL08

Source§

impl Rule for RuleAL09

Source§

impl Rule for RuleAM01

Source§

impl Rule for RuleAM02

Source§

impl Rule for RuleAM03

Source§

impl Rule for RuleAM04

Source§

impl Rule for RuleAM05

Source§

impl Rule for RuleAM06

Source§

impl Rule for RuleAM07

Source§

impl Rule for RuleAM08

Source§

impl Rule for RuleAM09

Source§

impl Rule for RuleCP01

Source§

impl Rule for RuleCP02

Source§

impl Rule for RuleCP03

Source§

impl Rule for RuleCP04

Source§

impl Rule for RuleCP05

Source§

impl Rule for RuleCV01

Source§

impl Rule for RuleCV02

Source§

impl Rule for RuleCV03

Source§

impl Rule for RuleCV04

Source§

impl Rule for RuleCV05

Source§

impl Rule for RuleCV06

Source§

impl Rule for RuleCV07

Source§

impl Rule for RuleCV08

Source§

impl Rule for RuleCV09

Source§

impl Rule for RuleCV10

Source§

impl Rule for RuleCV11

Source§

impl Rule for RuleCV12

Source§

impl Rule for RuleLT01

Source§

impl Rule for RuleLT02

Source§

impl Rule for RuleLT03

Source§

impl Rule for RuleLT04

Source§

impl Rule for RuleLT05

Source§

impl Rule for RuleLT06

Source§

impl Rule for RuleLT07

Source§

impl Rule for RuleLT08

Source§

impl Rule for RuleLT09

Source§

impl Rule for RuleLT10

Source§

impl Rule for RuleLT11

Source§

impl Rule for RuleLT12

Source§

impl Rule for RuleLT13

Source§

impl Rule for RuleLT14

Source§

impl Rule for RuleLT15

Source§

impl Rule for RuleRF01

Source§

impl Rule for RuleRF02

Source§

impl Rule for RuleRF03

Source§

impl Rule for RuleRF04

Source§

impl Rule for RuleRF05

Source§

impl Rule for RuleRF06

Source§

impl Rule for RuleRG02

Source§

impl Rule for RuleRG03

Source§

impl Rule for RuleRG04

Source§

impl Rule for RuleRG05

Source§

impl Rule for RuleST01

Source§

impl Rule for RuleST02

Source§

impl Rule for RuleST03

Source§

impl Rule for RuleST04

Source§

impl Rule for RuleST05

Source§

impl Rule for RuleST06

Source§

impl Rule for RuleST07

Source§

impl Rule for RuleST08

Source§

impl Rule for RuleST09

Source§

impl Rule for RuleST10

Source§

impl Rule for RuleST11

Source§

impl Rule for RuleST12

Source§

impl Rule for RuleTQ01

Source§

impl Rule for RuleTQ02

Source§

impl Rule for RuleTQ03