Expand description
Every obligation a dialect owes, reported at once.
A dialect owes Razeri more than the methods its traits require: decisions whose default is another engine’s answer, facts it declares twice that must agree, the wording of its refusals, the names it answers to. Met one at a time, each is a separate failing test, found only once it fires. This module is the report that answers all of them in one pass.
§Running it
From your own crate’s tests, where your dialect is linked and Razeri’s registry can see it:
let report = conformance::check(my_dialect);
assert!(report.is_clean(), "{report}");§What it can and cannot see
Everything here is read off the dialect object, so it works wherever your plugin compiles: it grades what your dialect declares and what its renderers return. It runs no SQL, so anything only an engine can settle — whether the SQL your dialect emits is the SQL that engine accepts — stays yours to test against a real instance.
§Your dialect’s name
Your platform’s names are yours. DialectInfo::name is the one Razeri
reports, aliases is every other spelling a design may use for it, and the
resolver reads both off the dialects that are loaded — so the report asks
only that your own spellings reach you, and there is no table inside Razeri
for your platform to be missing from. The one thing it will tell you is that
a spelling you declared is one another loaded platform also answers to,
because then the spelling names neither of you.
Structs§
- Finding
- One thing to fix, in the order a reader wants it: what is wrong, then what to do about it.
- Report
- The whole report for one dialect.
- Taken
AsDefault - One answer a dialect left to the contract: it answers as the contract’s own method body does, so Razeri writes the default’s SQL there.
Enums§
- Severity
- How much a finding matters.
Functions§
- check
- The report. Everything about this dialect that Razeri can check by asking it.
- check_
with_ registry - The same report, against a registry the host built — the path for a dialect loaded at run time rather than linked in.
- key_
refusal_ reason - The reason a dialect gives for its engine not computing razeri’s surrogate key, where it states that.
- taken_
as_ default - The answers
dialectleft to the contract, in the order the bundle’s files run.