#[non_exhaustive]pub enum Instead {
FramerBypass(BypassReason),
ControlFrameNotDecodable,
}Expand description
What a run reports in place of the action event a
Support::Unreachable cell can never produce.
Every Unreachable cell owes one, and giving the field a type of its own is
what collects the debt: a cell whose only honest answer would be nothing at
all is emitted finds no variant here to reach for, so it cannot be
published until the report it needs exists. The control site on an
uncompiled draft sat outside this enum for exactly that reason, answering
Support::Yes for a cell no hook is ever offered, until
ImpairmentKind::ControlFrameNotDecodable
gave it something true to point at.
The field is not a second copy of refusal. A refusal names what the
table would say; this names what an observer will actually see on the
wire-facing side, which is the only thing a run can be checked against.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
FramerBypass(BypassReason)
ProxyEvent::Impairment
carrying
ImpairmentKind::FramerBypass
with this reason, once per such stream.
ControlFrameNotDecodable
ProxyEvent::Impairment
carrying
ImpairmentKind::ControlFrameNotDecodable,
once per control stream direction, however many frames were
refused; the running figure is
Counters::control_frames_not_decodable.
Carries no reason, because on this cell there is only one: the build. A frame refused on a draft that was compiled produces the same event and no table cell, since it is a fact about one frame.