The linter flow is:
- Register rules in
CstRuleStore. - Build a
Runnerwith the source, parsed result, and rule config. - Call
runto obtain diagnostics.
use ddlint::{linter::{CstRuleStore, RuleConfig, Runner}, parse};
let source = "input relation R(x: u32);";
let parsed = parse(source);
let store = CstRuleStore::new();
let runner = Runner::new(&store, source, &parsed, RuleConfig::new());
let diagnostics = runner.run();
assert!(diagnostics.is_empty());