pub struct SubgroupObjectMeta {
pub object_id: u64,
pub extension_headers_len: u64,
pub payload_length: u64,
pub status: Option<u64>,
pub wire_len: u64,
}Expand description
The framing of one draft-18 subgroup object, without its payload.
Produced by SubgroupObjectReader::read_object_meta for callers that
forward an object’s bytes verbatim and never inspect the payload.
Fields§
§object_id: u64Resolved absolute Object ID.
extension_headers_len: u64Byte length of the properties block’s contents, excluding its length prefix.
payload_length: u64Declared payload length. Zero when status is Some.
status: Option<u64>Object status wire code, present only when the payload is empty.
wire_len: u64Total bytes this object occupies on the wire, prefix fields included.
Implementations§
Source§impl SubgroupObjectMeta
impl SubgroupObjectMeta
Sourcepub fn payload_permission(&self) -> Option<PayloadPermission>
pub fn payload_permission(&self) -> Option<PayloadPermission>
Whether this object was allowed the payload bytes it declares, from draft-18 Section 11.2.1.1: “Any object with a status code other than zero MUST have an empty payload.”
Some(Permitted) when Self::status is None. A status reaches the
wire only in place of a payload, so an object that declares one states
no status — and the same section makes Normal “implicit for any
non-zero length object”, which is the status that permits the bytes.
Some(..) from the status itself when there is one, which on a
zero-length object is always the case.
None when the status is a code draft-18 does not assign. Every meta
this module decodes holds an assigned code — the module’s status
conversion refuses the rest before the meta is built — so None is
reachable only from a meta assembled by hand, where the draft has no
rule to report because it never assigned the code. It is deliberately
not folded into Forbidden: the draft says this may not carry a
payload and the draft says nothing about this status are different
answers, and a caller that closes a session on the first should not
close one on the second without deciding to.
Trait Implementations§
Source§impl Clone for SubgroupObjectMeta
impl Clone for SubgroupObjectMeta
Source§fn clone(&self) -> SubgroupObjectMeta
fn clone(&self) -> SubgroupObjectMeta
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more