Skip to main content

RuleSource

Trait RuleSource 

Source
pub trait RuleSource: Send + Sync {
    // Required methods
    fn namespace(&self) -> &str;
    fn evaluate(
        &self,
        ctx: &SourceContext<'_>,
    ) -> Option<HashMap<String, String>>;
}
Expand description

A source of data for rule conditionals.

Each source owns a namespace (e.g., “rust”, “env”, “path”) and provides key-value data that rules can query in requires predicates.

Required Methods§

Source

fn namespace(&self) -> &str

The namespace this source provides (e.g., “rust”, “env”, “path”).

Source

fn evaluate(&self, ctx: &SourceContext<'_>) -> Option<HashMap<String, String>>

Evaluate the source for a given file context.

Returns a map of key-value pairs available under this namespace. For example, RustSource might return {"edition": "2024", "resolver": "2"}.

Returns None if this source doesn’t apply to the given file (e.g., RustSource returns None for Python files).

Implementors§