Skip to main content

record_fallbacks

Function record_fallbacks 

Source
fn record_fallbacks(msg: &Message, line: &str, report: &mut DecodeReport)
Expand description

Record every fallback the decoder took on msg, which decoded from line.

decode_dispatch only reports a fallback for the top-level type and for control_request.subtype. Every other discriminator the decoder does not model is absorbed silently, in one of two ways that need different detection:

  • Preserved. Message::System and ContentBlock::Unknown keep the payload verbatim, so the decoded value is indistinguishable from a modelled one. Detected by asking which bucket it landed in.
  • Replaced. A #[serde(other)] variant discards the wire value, so re-encoding emits the marker instead. Detected by re-encoding and comparing, which the preserved kind is invisible to because it round-trips exactly.