Skip to main content

Module conformance

Module conformance 

Source
Expand description

Every obligation a dialect owes, reported at once.

Two people built dialects against Razeri’s authoring guide without help. Between them they met twenty-seven obligations one cargo test at a time — a roster fails, you add a row, the next roster fails. Not one of those failures was discoverable before it fired. 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.

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.