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§
Sourcefn evaluate(&self, ctx: &SourceContext<'_>) -> Option<HashMap<String, String>>
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).