#[non_exhaustive]pub enum FormatSpecifier<'a> {
Absent,
Aggregated {
module_version: u8,
module_id: u16,
block_size: u16,
module_size: u32,
compression_method: u8,
original_size: u32,
timeout: u8,
object_key: &'a [u8],
},
Other {
format_id: u8,
bytes: &'a [u8],
},
}Expand description
FormatSpecifier — the optional aggregated block in a
carousel_identifier_descriptor (ISO/IEC 13818-6 / TR 101 202 Table 4.17a).
Dispatch on FormatId:
| FormatId | Variant | Meaning |
|---|---|---|
0x00 | Absent | No specifier bytes |
0x01 | Aggregated | Full field set (Table 4.17a) |
0x02–0xFF | Other | Reserved/private; raw bytes |
This is a data-carrying ADT — the variants hold payloads, not just labels.
Use FormatSpecifier::format_id to retrieve the wire FormatId value.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Absent
FormatId = 0x00: no FormatSpecifier bytes.
Aggregated
FormatId = 0x01: aggregated FormatSpecifier (TR 101 202 Table 4.17a).
Wire layout of the specifier block (all uimsbf):
ModuleVersion 8
ModuleId 16
BlockSize 16
ModuleSize 32
CompressionMethod 8
OriginalSize 32
TimeOut 8 (8-bit per TR 101 202 v1.2.1)
ObjectKeyLength 8 = N1
ObjectKeyData 8×N1Fields
Other
FormatId = 0x02–0xFF: reserved or private format; carried opaque.
Fields
bytes: &'a [u8]Raw specifier bytes (remainder after the carousel_id + FormatId
prefix, before private_data_byte).
For unknown FormatId values the caller cannot know where the
specifier ends and private data begins, so the entire body remainder
is treated as specifier bytes and private_data is empty.
Implementations§
Trait Implementations§
Source§impl<'a> Clone for FormatSpecifier<'a>
impl<'a> Clone for FormatSpecifier<'a>
Source§fn clone(&self) -> FormatSpecifier<'a>
fn clone(&self) -> FormatSpecifier<'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 FormatSpecifier<'a>
impl<'a> Debug for FormatSpecifier<'a>
impl<'a> Eq for FormatSpecifier<'a>
Source§impl<'a> PartialEq for FormatSpecifier<'a>
impl<'a> PartialEq for FormatSpecifier<'a>
Source§fn eq(&self, other: &FormatSpecifier<'a>) -> bool
fn eq(&self, other: &FormatSpecifier<'a>) -> bool
self and other values to be equal, and is used by ==.