pub struct UntSection<'a> {
pub action_type: u8,
pub oui_hash: u8,
pub version_number: u8,
pub current_next_indicator: bool,
pub section_number: u8,
pub last_section_number: u8,
pub oui: u32,
pub processing_order: u8,
pub common_descriptors: DescriptorLoop<'a>,
pub platform_loop: &'a [u8],
}Expand description
Update Notification Table (UNT).
Typed fields cover the fixed header (action_type through processing_order).
Variable-length regions are kept as raw &[u8] borrows to avoid pulling in
the full ISO/IEC 13818-6 compatibilityDescriptor parser:
common_descriptors— the body of thecommon_descriptor_loop(), i.e. the bytes AFTER the 12-bit length field (standard SI descriptor format).platform_loop— the entire remaining payload between thecommon_descriptor_loopand the CRC. This region contains zero or more platform entries, each starting with acompatibilityDescriptor()(an ISO/IEC 13818-6 groupInfo block — not a standard tag/length SI descriptor) followed by a 16-bitplatform_loop_lengthand the corresponding target / operational descriptor loops. Callers that need to walk individual platform entries must parse this field manually.
Fields§
§action_type: u8Action type (Table 12 of ETSI TS 102 006): 0x01 = System Software Update, 0x80–0xFF = user defined.
oui_hash: u8OUI hash: OUI[23:16] ^ OUI[15:8] ^ OUI[7:0] (XOR of the three OUI
bytes, used as a quick equality check before comparing the full OUI).
version_number: u85-bit version_number of this sub-table.
current_next_indicator: boolcurrent_next_indicator: true means this section is currently
applicable; false means it applies starting from the next version.
section_number: u8Index of this section within the sub-table.
last_section_number: u8Index of the last section in the sub-table.
oui: u3224-bit IEEE Organizationally Unique Identifier.
Stored in the low 24 bits of a u32 (high byte is always zero).
The DVB-reserved generic OUI 0x00015A means the receiver should
analyse the UNT payload to determine applicability.
processing_order: u8Processing order (Table 13): 0x00 = first action, 0x01–0xFE = subsequent (ascending), 0xFF = no ordering implied.
common_descriptors: DescriptorLoop<'a>Body of common_descriptor_loop() — the bytes AFTER the 12-bit length
field. Contains zero or more standard SI descriptors (tag + length +
payload), as defined in §9.4.2.1. Serializes as the typed descriptor
sequence; .raw() yields the wire bytes.
platform_loop: &'a [u8]Raw bytes of the entire platform loop region — everything after
common_descriptor_loop() up to (but not including) the CRC_32.
Each platform entry starts with a compatibilityDescriptor() block
(ISO/IEC 13818-6 §11 groupInfo form — a 2-byte length prefix +
descriptor list, not a standard SI tag/length descriptor), followed
by a 16-bit platform_loop_length then zero or more platform entries
each containing target and operational descriptor loops.
To walk platform entries, parse this field according to ETSI TS 102 006 §9.4.2.2–9.4.2.4.
Trait Implementations§
Source§impl<'a> Clone for UntSection<'a>
impl<'a> Clone for UntSection<'a>
Source§fn clone(&self) -> UntSection<'a>
fn clone(&self) -> UntSection<'a>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for UntSection<'a>
impl<'a> Debug for UntSection<'a>
impl<'a> Eq for UntSection<'a>
Source§impl<'a> From<UntSection<'a>> for AnyTableSection<'a>
impl<'a> From<UntSection<'a>> for AnyTableSection<'a>
Source§fn from(t: UntSection<'a>) -> Self
fn from(t: UntSection<'a>) -> Self
Source§impl<'a> Parse<'a> for UntSection<'a>
impl<'a> Parse<'a> for UntSection<'a>
Source§impl<'a> PartialEq for UntSection<'a>
impl<'a> PartialEq for UntSection<'a>
Source§fn eq(&self, other: &UntSection<'a>) -> bool
fn eq(&self, other: &UntSection<'a>) -> bool
self and other values to be equal, and is used by ==.Source§impl<'a> Serialize for UntSection<'a>
impl<'a> Serialize for UntSection<'a>
Source§impl Serialize for UntSection<'_>
impl Serialize for UntSection<'_>
Source§type Error = Error
type Error = Error
Parse impl, but need not be).Source§fn serialized_len(&self) -> usize
fn serialized_len(&self) -> usize
serialize_into will write.impl<'a> StructuralPartialEq for UntSection<'a>
Source§impl<'a> Table<'a> for UntSection<'a>
impl<'a> Table<'a> for UntSection<'a>
Source§impl<'a> TableDef<'a> for UntSection<'a>
impl<'a> TableDef<'a> for UntSection<'a>
Source§impl<'a> Yokeable<'a> for UntSection<'static>
impl<'a> Yokeable<'a> for UntSection<'static>
Source§type Output = UntSection<'a>
type Output = UntSection<'a>
Self with the 'static replaced with 'a, i.e. Self<'a>