pub struct FetchGaps(Box<FetchGapTracker>);Expand description
The Prior Group ID Gap conditions of draft-12 Section 10.1 that one fetch stream shows.
PriorGaps::from_extensions refuses a gap larger than the Group ID. Across
the stream this refuses Objects of one Group with no value in common, read
as SubgroupGaps reads them, and “an Object with a Group ID within a
previously communicated gap” for the Group before on the stream. An Object
whose values differ has communicated at least the least of them, whichever
is that Object’s. draft-12 Section 8.16: “Within each group,
objects are sent in Object ID order; subgroup ID is not used for ordering.”
FetchObjectHeader::decode reads one Object and applies none of this: a
reader of a fetch stream checks each Object with one FetchGaps.
Tuple Fields§
§0: Box<FetchGapTracker>Implementations§
Source§impl FetchGaps
impl FetchGaps
Sourcepub fn check(
&mut self,
group_id: u64,
object_id: u64,
extensions: &[u8],
) -> Result<PriorGaps, CodecError>
pub fn check( &mut self, group_id: u64, object_id: u64, extensions: &[u8], ) -> Result<PriorGaps, CodecError>
Check the next Object on the stream, from its Group ID, Object ID and
extension block, refusing a gap condition with
CodecError::MalformedTrack and a block that does not parse as
parse_object_properties does. Records the Object only when it
passes.