#[repr(u8)]pub enum ObjectStatus {
Normal = 0,
ObjectDoesNotExist = 1,
EndOfGroup = 3,
EndOfTrackAndGroup = 4,
EndOfSubgroup = 5,
}Expand description
Object status values, from MoQ Transport draft-07 Section 7.1.1.1 “Object Status”.
The draft assigns 0x0, 0x1, 0x3, 0x4 and 0x5, and says of everything else
that it “SHOULD be treated as a protocol error and terminate the session
with a Protocol Violation”. 0x2 is not assigned; ObjectStatus::from_u64
answers None for it, and for every other unassigned value.
Variants§
Normal = 0
Normal object. The payload is an array of bytes and can be empty.
ObjectDoesNotExist = 1
The object does not exist at any publisher and will not be published in the future.
EndOfGroup = 3
End of Group. Object ID is one greater than the largest object produced in the group identified by the Group ID; 0 means the group is empty.
EndOfTrackAndGroup = 4
End of Track and Group, which is the name draft-07 gives 0x4: Group ID is one greater than the largest group produced in the track and Object ID is one greater than the largest object produced in that group.
Named as the draft names it, and as drafts 08-10 name the same code
point. Draft-08 keeps 0x4 here and adds a separate “end of Track” at
0x5, so a variant called EndOfTrack at 0x4 would read as that later
status one code point off.
EndOfSubgroup = 5
End of Subgroup. Object ID is one greater than the largest normal object ID in the subgroup.
Implementations§
Source§impl ObjectStatus
impl ObjectStatus
Sourcepub const ALL: &[ObjectStatus]
pub const ALL: &[ObjectStatus]
Every status draft-07 assigns, in ascending wire order.
This is exactly the set ObjectStatus::from_u64 accepts. Any other
value is one the draft does not assign.
Trait Implementations§
Source§impl Clone for ObjectStatus
impl Clone for ObjectStatus
Source§fn clone(&self) -> ObjectStatus
fn clone(&self) -> ObjectStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more