Skip to main content

Module conformance

Module conformance 

Source
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.
TakenAsDefault
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 dialect left to the contract, in the order the bundle’s files run.