#[non_exhaustive]pub enum InvalidFramingReason {
LengthExceedsMax {
prefix: u64,
max: u64,
},
LengthZero,
Truncated,
HeaderMissing,
}Expand description
Reasons a streamed framing wrapper is rejected.
Distinct from WalExportError so callers can match the framing
failure mode without needing to reach into a tuple variant.
BufferedWalSink uses the variants individually when
constructing rejection paths.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
LengthExceedsMax
Length prefix exceeds MAX_RECORD_BYTES. Carries both the
observed prefix and the bound for caller diagnostics.
Operator response: investigate hostile stream injection or fragment producer. The 16 MiB ceiling is a fail-secure hard bound — a legitimate producer should never emit a frame at this size.
Fields
max: u64The bound that was exceeded — equals MAX_RECORD_BYTES.
LengthZero
Length prefix is zero — empty records are disallowed.
Every frame must carry a payload; the reader rejects defensively to prevent silent-no-op streams.
Operator response: re-emit (the producer should never emit a length-zero frame).
Truncated
Stream truncated — bytes ended mid-record before the full length-prefixed payload arrived. Distinguishes operator-side disk failure from valid-but-shorter streams.
Operator response: re-emit; source likely truncated mid-
write (disk full, network drop, process crash). The reader
surfaces this distinct from HeaderMissing so the operator
can distinguish “never started” from “started but cut off”.
HeaderMissing
Stream header magic missing or mismatched at stream start.
Triggered when the leading 8 bytes do not equal
STREAM_HEADER_MAGIC.
Operator response: verify the source stream is an
ARKHEXP-format export (not, e.g., an L0 WAL file or an
unrelated binary). Distinct from
crate::wal_export::WalExportError::UnsupportedStreamVersion
which signals “magic present but version unrecognised”.
Trait Implementations§
Source§impl Debug for InvalidFramingReason
impl Debug for InvalidFramingReason
Source§impl Display for InvalidFramingReason
impl Display for InvalidFramingReason
Source§impl Error for InvalidFramingReason
impl Error for InvalidFramingReason
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()