refactor(xatu): retain node rule scaffolding

This commit is contained in:
2026-09-19 20:16:17 -04:00
parent efcd91aca1
commit 3da8da2907

View File

@@ -27,6 +27,16 @@ impl std::fmt::Display for Diagnostic {
}
}
#[expect(dead_code, reason = "retained for planned node rules")]
pub trait NodeRule {
type Node;
const ID: &'static str;
fn select(data: &ast::NodeData) -> Option<&Self::Node>;
fn check(node: &Self::Node) -> Option<&'static str>;
}
pub trait TokenRule {
type Token;
@@ -53,6 +63,21 @@ pub fn run_rules(file: &ast::ParsedFile) -> Vec<Diagnostic> {
.collect()
}
#[expect(dead_code, reason = "retained for planned node rules")]
fn run_node_rule<R>(node: &ast::Node) -> Option<Finding>
where
R: NodeRule,
{
let typed_node = R::select(&node.data)?;
let message = R::check(typed_node)?;
Some(Finding {
rule_id: R::ID,
range: node.range,
message,
})
}
fn run_token_rule<R>(token: &ast::Token) -> Option<Finding>
where
R: TokenRule,