#[non_exhaustive]pub enum AnySegment<'a> {
PageComposition(PageCompositionSegment),
RegionComposition(RegionCompositionSegment),
ClutDefinition(ClutDefinitionSegment),
ObjectData(ObjectDataSegment<'a>),
DisplayDefinition(DisplayDefinitionSegment),
DisparitySignalling(DisparitySignallingSegment),
AlternativeClut(AlternativeClutSegment),
EndOfDisplaySet(EndOfDisplaySetSegment),
Stuffing(StuffingSegment<'a>),
Unknown {
segment_type: u8,
page_id: u16,
data: &'a [u8],
},
Malformed {
segment_type: u8,
page_id: u16,
data: &'a [u8],
err: Error,
},
}Expand description
Every crate-implemented segment type, plus an Unknown fallthrough.
serde uses external tagging with camelCase variant keys.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
PageComposition(PageCompositionSegment)
PageComposition segment.
RegionComposition(RegionCompositionSegment)
RegionComposition segment.
ClutDefinition(ClutDefinitionSegment)
ClutDefinition segment.
ObjectData(ObjectDataSegment<'a>)
ObjectData segment.
DisplayDefinition(DisplayDefinitionSegment)
DisplayDefinition segment.
DisparitySignalling(DisparitySignallingSegment)
DisparitySignalling segment.
AlternativeClut(AlternativeClutSegment)
AlternativeClut segment.
EndOfDisplaySet(EndOfDisplaySetSegment)
EndOfDisplaySet segment.
Stuffing(StuffingSegment<'a>)
Stuffing segment.
Unknown
Segment with an unrecognized or unsupported segment_type; data is the
segment body sans the 6-byte header (4 bytes of generic segment framing).
Fields
Malformed
Segment with a recognized segment_type whose typed parse
returned Err (distinct from Self::Unknown, whose
segment_type has no typed implementation at all — issue
#1108/DS-W1: a bug that makes every real instance of a typed
parser fail could otherwise hide as Unknown passthrough and
still round-trip byte-exact). Re-serializes the raw bytes
verbatim, same as Unknown.
Implementations§
Source§impl<'a> AnySegment<'a>
impl<'a> AnySegment<'a>
Sourcepub const DISPATCHED_SEGMENT_TYPES: &'static [u8]
pub const DISPATCHED_SEGMENT_TYPES: &'static [u8]
Every segment_type the generated dispatcher routes.
Sourcepub fn name(&self) -> &'static str
pub fn name(&self) -> &'static str
Diagnostic name of the contained segment — the type’s
SegmentDef::NAME
("PAGE_COMPOSITION", "OBJECT_DATA", …); "UNKNOWN" for
AnySegment::Unknown, "MALFORMED" for
AnySegment::Malformed.
Trait Implementations§
Source§impl<'a> Clone for AnySegment<'a>
impl<'a> Clone for AnySegment<'a>
Source§impl<'a> Debug for AnySegment<'a>
impl<'a> Debug for AnySegment<'a>
impl<'a> Eq for AnySegment<'a>
Source§impl<'a> From<AlternativeClutSegment> for AnySegment<'a>
impl<'a> From<AlternativeClutSegment> for AnySegment<'a>
Source§fn from(s: AlternativeClutSegment) -> Self
fn from(s: AlternativeClutSegment) -> Self
Source§impl<'a> From<ClutDefinitionSegment> for AnySegment<'a>
impl<'a> From<ClutDefinitionSegment> for AnySegment<'a>
Source§fn from(s: ClutDefinitionSegment) -> Self
fn from(s: ClutDefinitionSegment) -> Self
Source§impl<'a> From<DisparitySignallingSegment> for AnySegment<'a>
impl<'a> From<DisparitySignallingSegment> for AnySegment<'a>
Source§fn from(s: DisparitySignallingSegment) -> Self
fn from(s: DisparitySignallingSegment) -> Self
Source§impl<'a> From<DisplayDefinitionSegment> for AnySegment<'a>
impl<'a> From<DisplayDefinitionSegment> for AnySegment<'a>
Source§fn from(s: DisplayDefinitionSegment) -> Self
fn from(s: DisplayDefinitionSegment) -> Self
Source§impl<'a> From<EndOfDisplaySetSegment> for AnySegment<'a>
impl<'a> From<EndOfDisplaySetSegment> for AnySegment<'a>
Source§fn from(s: EndOfDisplaySetSegment) -> Self
fn from(s: EndOfDisplaySetSegment) -> Self
Source§impl<'a> From<ObjectDataSegment<'a>> for AnySegment<'a>
impl<'a> From<ObjectDataSegment<'a>> for AnySegment<'a>
Source§fn from(s: ObjectDataSegment<'a>) -> Self
fn from(s: ObjectDataSegment<'a>) -> Self
Source§impl<'a> From<PageCompositionSegment> for AnySegment<'a>
impl<'a> From<PageCompositionSegment> for AnySegment<'a>
Source§fn from(s: PageCompositionSegment) -> Self
fn from(s: PageCompositionSegment) -> Self
Source§impl<'a> From<RegionCompositionSegment> for AnySegment<'a>
impl<'a> From<RegionCompositionSegment> for AnySegment<'a>
Source§fn from(s: RegionCompositionSegment) -> Self
fn from(s: RegionCompositionSegment) -> Self
Source§impl<'a> From<StuffingSegment<'a>> for AnySegment<'a>
impl<'a> From<StuffingSegment<'a>> for AnySegment<'a>
Source§fn from(s: StuffingSegment<'a>) -> Self
fn from(s: StuffingSegment<'a>) -> Self
Source§impl<'a> PartialEq for AnySegment<'a>
impl<'a> PartialEq for AnySegment<'a>
Source§impl<'a> Serialize for AnySegment<'a>
Available on crate feature serde only.
impl<'a> Serialize for AnySegment<'a>
serde only.