pub struct Int<'a> {
pub action_type: u8,
pub platform_id_hash: u8,
pub version_number: u8,
pub current_next_indicator: bool,
pub section_number: u8,
pub last_section_number: u8,
pub platform_id: u32,
pub processing_order: u8,
pub platform_descriptors: &'a [u8],
pub loops: &'a [u8],
}Expand description
IP/MAC Notification Table (INT), ETSI EN 301 192 v1.7.1 §8.4.
All variable-length regions are borrowed as raw bytes from the source
slice. The per-target-and-operational-descriptor loops are exposed as a
single loops slice covering everything after the platform_descriptor_loop
and before the CRC; callers that need to iterate individual entries must
walk the raw bytes using the same 4-bit-reserved + 12-bit-length framing
described by the spec.
Fields§
§action_type: u8Semantics of this INT announcement — 0x01 = stream announcement/location.
platform_id_hash: u88-bit XOR hash over the 24-bit platform_id.
Used for fast section filtering; not unique — always verify against
the full platform_id.
version_number: u85-bit version_number.
current_next_indicator: boolcurrent_next_indicator bit. true means this section is currently
applicable; false means it will become applicable at the next update.
section_number: u8section_number within this sub-table.
last_section_number: u8last_section_number in this sub-table.
platform_id: u3224-bit platform identifier (TS 101 162) stored in the low 24 bits of
a u32. The high byte is always zero on the wire.
processing_order: u8Processing order relative to other INT sections for the same platform_id. 0x00 means no ordering constraint.
platform_descriptors: &'a [u8]Raw bytes of the platform_descriptor_loop (descriptors only, not the
2-byte length field).
loops: &'a [u8]Raw bytes of all N × (target_descriptor_loop | operational_descriptor_loop)
entries that follow the platform_descriptor_loop and precede the CRC.
Each iteration starts with a target_descriptor_loop length field (4-bit reserved + 12-bit length) followed by target descriptors, then an operational_descriptor_loop length field followed by operational descriptors. Callers iterate this by walking the 2-byte length headers in sequence.
Trait Implementations§
Source§impl<'de: 'a, 'a> Deserialize<'de> for Int<'a>
impl<'de: 'a, 'a> Deserialize<'de> for Int<'a>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl<'a> Eq for Int<'a>
Source§impl Serialize for Int<'_>
impl Serialize for Int<'_>
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.