pub struct DatagramStatusHeader {
pub track_alias: VarInt,
pub group_id: VarInt,
pub object_id: VarInt,
pub publisher_priority: u8,
pub extension_headers_length: VarInt,
pub extensions: Vec<u8>,
pub object_status: ObjectStatus,
}Expand description
Datagram status header (draft-09, type 0x02).
Draft-09 change: gains extension_headers_length field.
Fields§
§track_alias: VarIntTrack alias identifying the subscription.
group_id: VarIntGroup identifier.
object_id: VarIntObject identifier within the group.
publisher_priority: u8Publisher priority for delivery ordering.
extension_headers_length: VarIntTotal byte length of extension headers, as it arrived.
Advisory on encode. Every encoder here writes
VarInt::from_usize(self.extensions.len()) and never reads this field,
so a hand-built header whose stated length disagrees with the bytes
beside it goes on the wire with the derived length and is read back
consistent. Decoding always sets the two together, so a value that came
off the wire never disagrees.
It is kept because it is what the peer stated, which is not always recoverable from the bytes: a non-minimal varint length encodes the same number in more bytes, and a relay that must forward the block unchanged has to know which it saw.
extensions: Vec<u8>Raw extension bytes (opaque).
object_status: ObjectStatusObject status code.
Implementations§
Source§impl DatagramStatusHeader
impl DatagramStatusHeader
Sourcepub fn encode_checked(&self, buf: &mut impl BufMut) -> Result<(), CodecError>
pub fn encode_checked(&self, buf: &mut impl BufMut) -> Result<(), CodecError>
Encode the datagram status header, refusing an end-of-track object that does not end at object zero.
§Errors
CodecError::EndOfTrackObjectId if an end-of-track status is paired
with a non-zero Object ID.
Sourcepub fn decode(buf: &mut impl Buf) -> Result<Self, CodecError>
pub fn decode(buf: &mut impl Buf) -> Result<Self, CodecError>
Decode a datagram status header from the buffer.
Trait Implementations§
Source§impl Clone for DatagramStatusHeader
impl Clone for DatagramStatusHeader
Source§fn clone(&self) -> DatagramStatusHeader
fn clone(&self) -> DatagramStatusHeader
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more