pub struct FetchObjectHeader {
pub group_id: VarInt,
pub subgroup_id: VarInt,
pub object_id: VarInt,
pub publisher_priority: u8,
pub extension_headers_length: VarInt,
pub extensions: Vec<u8>,
pub payload_length: VarInt,
pub object_status: ObjectStatus,
}Fields§
§group_id: VarInt§subgroup_id: VarInt§object_id: VarInt§publisher_priority: u8§extension_headers_length: VarInt§extensions: Vec<u8>§payload_length: VarInt§object_status: ObjectStatusImplementations§
Source§impl FetchObjectHeader
impl FetchObjectHeader
pub fn encode(&self, buf: &mut impl BufMut)
Sourcepub fn encode_checked(&self, buf: &mut impl BufMut) -> Result<(), CodecError>
pub fn encode_checked(&self, buf: &mut impl BufMut) -> Result<(), CodecError>
Encode the header, refusing a status the framing cannot carry.
Section 9.4.4 puts the Object Status field on the wire only when the
Object Payload Length is zero, and Section 9.2.1.1 says “Any object
with a status code other than zero MUST have an empty payload”. A
non-zero status paired with a non-zero payload length therefore has no
encoding at all: Self::encode drops the status and the peer reads an
ordinary object, which is a different object from the one the caller
described. This refuses instead.
The datagram types on this draft already refuse the same pairing. These two did not, and they are the ones a publisher writes on every stream.
§Errors
CodecError::InvalidField if a non-zero Object Status is paired with
a non-zero Object Payload Length.
pub fn decode(buf: &mut impl Buf) -> Result<Self, CodecError>
Trait Implementations§
Source§impl Clone for FetchObjectHeader
impl Clone for FetchObjectHeader
Source§fn clone(&self) -> FetchObjectHeader
fn clone(&self) -> FetchObjectHeader
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for FetchObjectHeader
impl Debug for FetchObjectHeader
impl Eq for FetchObjectHeader
Source§impl PartialEq for FetchObjectHeader
impl PartialEq for FetchObjectHeader
impl StructuralPartialEq for FetchObjectHeader
Auto Trait Implementations§
impl Freeze for FetchObjectHeader
impl RefUnwindSafe for FetchObjectHeader
impl Send for FetchObjectHeader
impl Sync for FetchObjectHeader
impl Unpin for FetchObjectHeader
impl UnsafeUnpin for FetchObjectHeader
impl UnwindSafe for FetchObjectHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more