#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Variant {
StandardNested,
FbbOnly,
ZeroEntity,
FloatPackedInnerNoFbb,
E5Stream,
InnerNoDirectory,
Unknown,
}
impl Variant {
pub fn token(self) -> &'static str {
match self {
Variant::StandardNested => "standard_nested",
Variant::FbbOnly => "fbb_only",
Variant::ZeroEntity => "zero_entity",
Variant::FloatPackedInnerNoFbb => "float_packed_inner_no_fbb",
Variant::E5Stream => "e5_stream",
Variant::InnerNoDirectory => "inner_no_directory",
Variant::Unknown => "unknown",
}
}
pub fn description(self) -> &'static str {
match self {
Variant::StandardNested => {
"standard nested V5_CFV2 (FBB spine + standard edge-table delimiter): geometry \
decode supported"
}
Variant::FbbOnly => {
"FBB-only partial spine (u24be edge tables, no standard delimiter): vertex and \
analytic carrier decode supported"
}
Variant::ZeroEntity => {
"zero-entity a9 03 (no nested container): analytic carriers decoded"
}
Variant::FloatPackedInnerNoFbb => {
"float-packed inner-no-FBB (object-stream b5 03 topology): freeform carrier \
decode supported"
}
Variant::E5Stream => "E5 0D 03 record stream: direct analytic carrier decode supported",
Variant::InnerNoDirectory => {
"nested V5_CFV2 with no BREP-body directory (contiguous inner body): freeform \
carrier decode supported"
}
Variant::Unknown => "unrecognized storage layout",
}
}
}