#[non_exhaustive]pub enum Check {
Show 21 variants
ValidStructuredResponse,
MalformedJson,
UnknownFields,
MissingRequiredFields,
MultipleActs,
ToolAndReadRequestIds,
StreamingReconstruction,
StreamingIncremental,
StreamingUsageAgreement,
TokenUsageContract,
EmptyOutput,
Refusal,
Timeout,
RateLimit,
AuthenticationFailure,
ContextOverflow,
Cancellation,
RetryClassification,
SecretRedaction,
NoSilentCapabilityDowngrade,
StatusMapping(StatusRow),
}Expand description
One row of the spec §20.8 table.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ValidStructuredResponse
A schema-conformant body maps to a normalized response with every field intact.
MalformedJson
A body that is not JSON is a typed failure, never a partial parse.
UnknownFields
A field the schema forbids rejects the whole response.
MissingRequiredFields
A missing required field rejects the whole response; no default is filled in.
MultipleActs
A multi-act plan round-trips in order, as one proposal.
ToolAndReadRequestIds
Tool and read request ids survive, and
preserves_call_ids
matches what actually happens.
StreamingReconstruction
The reassembled stream equals the non-streamed answer for the same exchange.
StreamingIncremental
An answer that arrived as several wire events produced several deltas.
Without this row an adapter that reads the whole body, then emits one
TextDelta at the end,
reassembles perfectly and gives an adopter nothing: the point of
streaming is prose appearing while it is written.
StreamingUsageAgreement
The streamed and the whole path report the same
TokenUsage for the same answer.
Usage rides on a final frame in most vendors, so it is the first thing a streaming implementation drops — and a cost figure that depends on which path served the turn is worse than no cost figure.
TokenUsageContract
The reported usage keeps its own contract: cached_input is a subset of
input, never a figure alongside it.
input is the whole prompt and cached_input is the part of it the
provider served from its cache. An adapter that reports the net figure —
input minus cache — makes every cost estimate wrong and every cache-hit
ratio over one.
EmptyOutput
An empty body is a typed failure or an empty response, never an empty plan that parses.
Refusal
A refusal maps to the refusal variant, distinguishable from malformed output.
Timeout
A deadline that passes produces
Timeout.
RateLimit
A rate limit maps to its variant and preserves the Retry-After hint.
AuthenticationFailure
Rejected credentials map to a non-retryable variant, and the key never appears in the error.
ContextOverflow
A context overflow gets its own variant, so the runtime can shrink the prompt instead of retrying blindly.
Cancellation
Dropping the future aborts cleanly, with nothing left running.
RetryClassification
Every observed error carries the RetryClass
the policy layer expects.
SecretRedaction
The configured credential appears in no rendering of the adapter, its responses or its errors.
NoSilentCapabilityDowngrade
A profile that declares schema enforcement actually sends the schema.
StatusMapping(StatusRow)
One wire failure maps onto the one error kind it means (spec §24).
RetryClassification proves the class of
whatever kind the adapter produced; these rows prove it produced the
right kind. Without them an adapter that flattens every failure onto
Transport passes the
whole suite.
Implementations§
Source§impl Check
impl Check
Sourcepub const ALL: [Check; 20]
pub const ALL: [Check; 20]
The feature rows of spec §20.8, in the order
run_all executes them.
Seventeen come from the specification’s own table; the three that follow
StreamingReconstruction were added
because reassembly on its own proves neither that a stream is
incremental nor that the counts survive it.
A full run also reports the thirteen STATUS rows;
run_order is the complete sequence.
Sourcepub const STATUS: [Check; 13]
pub const STATUS: [Check; 13]
The thirteen per-status rows, in the order a run executes them.
They run before RetryClassification, so
the kinds they observe are classified too.
Sourcepub fn run_order() -> Vec<Check>
pub fn run_order() -> Vec<Check>
Every row a full run reports, in execution order.
The STATUS rows sit where they are exercised — after
the failure checks and before
RetryClassification — rather than
appended at the end, so the classification row covers what they saw.
Sourcepub const fn status_row(self) -> Option<StatusRow>
pub const fn status_row(self) -> Option<StatusRow>
The per-status row this check exercises, when it is one.
Sourcepub const fn is_declaration_check(self) -> bool
pub const fn is_declaration_check(self) -> bool
Returns true for the checks whose failure means the profile’s
declaration is wrong rather than its plumbing.
Failing one of these is never fixed by relaxing the test: the declaration must be lowered instead (spec §20.3).
Sourcepub const fn is_declarable(self) -> bool
pub const fn is_declarable(self) -> bool
Returns true for the feature rows a deployment may declare it cannot
produce, in words, through
WireFixtures::feature_support.
These are the rows whose behaviour depends on what sits around the model rather than on the model: a daemon started on a laptop authenticates nobody, meters nothing and has no safety filter, and a deployment may genuinely have no streaming endpoint. Every other row is a property of the adapter itself and cannot be declared away — a declaration on one of those fails the row rather than skipping it.
A per-status row is declared through
WireFixtures::status_support
instead, which is why it is not listed here.
Trait Implementations§
impl Copy for Check
impl Eq for Check
Source§impl Ord for Check
impl Ord for Check
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for Check
impl PartialOrd for Check
impl StructuralPartialEq for Check
Auto Trait Implementations§
impl Freeze for Check
impl RefUnwindSafe for Check
impl Send for Check
impl Sync for Check
impl Unpin for Check
impl UnsafeUnpin for Check
impl UnwindSafe for Check
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.