Skip to main content

Rule

Trait Rule 

Source
pub trait Rule: Send + Sync {
    // Required methods
    fn id(&self) -> &str;
    fn name(&self) -> &str;
    fn description(&self) -> &str;
    fn category(&self) -> RuleCategory;
    fn default_severity(&self) -> Severity;
    fn evaluate(
        &self,
        ctx: &RuleContext<'_>,
        config: &RuleConfig,
    ) -> Vec<RuleViolation>;
}
Expand description

A single quality rule that can be evaluated against a project.

Rules are stateless: all data comes via RuleContext. Each rule has a unique ID (e.g. “freshness/stale-doc”), a default severity, and a category.

Required Methods§

Source

fn id(&self) -> &str

Unique identifier for this rule (e.g. “freshness/stale-doc”).

Source

fn name(&self) -> &str

Human-readable name.

Source

fn description(&self) -> &str

Short description of what this rule checks.

Source

fn category(&self) -> RuleCategory

Category this rule belongs to.

Source

fn default_severity(&self) -> Severity

Default severity when the rule is violated.

Source

fn evaluate( &self, ctx: &RuleContext<'_>, config: &RuleConfig, ) -> Vec<RuleViolation>

Evaluate the rule against the project context. Returns zero or more violations.

Implementors§