pub enum AnyFetchEndOfRange {
NonExistent,
Unknown,
TimedOut,
Gone,
EndOfGroup,
EndOfTrack,
}Expand description
What a fetch stream indicator asserts: an End of Range about the Locations it covers, or (draft-23 on) the end of a Group or of the Track.
Drafts 16-23 let a fetch stream state that a run of Objects was not serialized instead of sending them: one frame names the Location that ends the run, and every Location from the previously serialized Object up to and including that one is covered. The indicators are the same frame shape with different claims behind it, and a subscriber may cache the first as a settled gap while it must not cache the others, so they are carried apart rather than merged.
Never produced on drafts 07-15, which have no such frame.
Variants§
NonExistent
The covered Objects do not exist.
Unknown
The covered Objects’ status is unknown to the publisher.
TimedOut
The covered Objects timed out: the relay abandoned them when its
FILL_TIMEOUT budget ran out.
Draft-20 and later only. Drafts 16 through 19 have two indicators
and report the same Objects as Self::Unknown, so this variant is
never produced on them — which makes its presence a fact about the
stream’s draft as much as about the frame, and is why a receiver cannot
treat the two as interchangeable.
Gone
The covered Objects are Gone: the original publisher cannot deliver them and does not know whether they exist.
Draft-23 and later only (draft-23 Section 11.4.1, Table 8, 0x40C).
EndOfGroup
End of Group (draft-23 Table 8, 0x80). Not a range: it carries no Location and says the Object before it is the last in its Group. The frame’s Location is that Object’s.
Draft-23 and later only.
EndOfTrack
End of Track (draft-23 Table 8, 0x81), which also ends the Group. Not a
range, as for Self::EndOfGroup.
Draft-23 and later only.