diff --git a/serde_arrow/src/internal/schema/mod.rs b/serde_arrow/src/internal/schema/mod.rs index 8ff90182..9faeaaf0 100644 --- a/serde_arrow/src/internal/schema/mod.rs +++ b/serde_arrow/src/internal/schema/mod.rs @@ -466,7 +466,10 @@ fn validate_time64_field(field: &Field, unit: TimeUnit) -> Result<()> { fn validate_struct_field(field: &Field, children: &[Field]) -> Result<()> { // NOTE: do not check number of children: arrow-rs can 0 children, arrow2 not match get_strategy_from_metadata(&field.metadata)? { - None | Some(Strategy::MapAsStruct) | Some(Strategy::TupleAsStruct) => {} + None + | Some(Strategy::MapAsStruct) + | Some(Strategy::TupleAsStruct) + | Some(Strategy::EnumsWithNamedFieldsAsStructs) => {} Some(strategy) => fail!("invalid strategy for Struct field: {strategy}"), } for child in children { diff --git a/serde_arrow/src/internal/schema/strategy.rs b/serde_arrow/src/internal/schema/strategy.rs index c79e2347..1f743de1 100644 --- a/serde_arrow/src/internal/schema/strategy.rs +++ b/serde_arrow/src/internal/schema/strategy.rs @@ -117,6 +117,7 @@ impl FromStr for Strategy { "NaiveStrAsDate64" => Ok(Self::NaiveStrAsDate64), "TupleAsStruct" => Ok(Self::TupleAsStruct), "MapAsStruct" => Ok(Self::MapAsStruct), + "EnumsWithNamedFieldsAsStructs" => Ok(Self::EnumsWithNamedFieldsAsStructs), "UnknownVariant" => Ok(Self::UnknownVariant), _ => fail!("Unknown strategy {s}"), }