From 49d5f6d3b2fe60c85fccbb78e92f1433dc2757a0 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 13 Jan 2025 15:53:26 +0100 Subject: [PATCH] Add arrow conversions for Schema --- src/datatypes/schema.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/datatypes/schema.rs b/src/datatypes/schema.rs index 671c9438622..f8fb39331fc 100644 --- a/src/datatypes/schema.rs +++ b/src/datatypes/schema.rs @@ -58,3 +58,24 @@ impl From> for Schema { } } } + +#[cfg(feature = "arrow")] +impl From for Schema { + fn from(schema: arrow_schema::Schema) -> Self { + let arrow_schema::Schema { fields, metadata } = schema; + Self { + fields: fields.iter().map(Into::into).collect(), + metadata: metadata.into_iter().collect(), + } + } +} + +#[cfg(feature = "arrow")] +impl From for arrow_schema::Schema { + fn from(schema: Schema) -> Self { + let Schema { fields, metadata } = schema; + let fields: arrow_schema::Fields = + fields.into_iter().map(arrow_schema::Field::from).collect(); + Self::new_with_metadata(fields, metadata.into_iter().collect()) + } +}