#[non_exhaustive]pub enum Expiry {
Deliver,
ResetStream {
code: u64,
},
}Expand description
What happens when a queued object outlives max_hold.
#[non_exhaustive], with Deliver as the Default — which is
exactly today’s behaviour, so nothing changes for a session that does
not ask for shaping.
There is deliberately no Drop variant. An expiry is decided at
release time, long after the framer’s positional cursor has advanced
past the object, so the elide fix-up cannot be armed; on drafts 14-19
that corrupts every successor’s absolute ID. A variant that is
constructible and always refused is worse than an absent one.
The cost of the pick, stated so nobody rediscovers it: the relay gave up on
stale media is expressible only at stream granularity, and
objects_expired is therefore zero by default, with a producer only on the
Expiry::ResetStream arm.
Written as "deliver" or {"reset-stream": {"code": 1}}.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Deliver
Clamp the deadline and deliver anyway. Today’s behaviour, and the
reason a starved class still delivers at max_hold. Default.
ResetStream
Give up on the stream: drain what is due, then reset.