in crates/iceberg/src/spec/datatypes.rs [479:513]
fn from(value: SerdeType) -> Self {
match value {
SerdeType::List {
r#type: _,
element_id,
element_required,
element,
} => Self::List(ListType {
element_field: NestedField::list_element(
element_id,
element.into_owned(),
element_required,
),
}),
SerdeType::Map {
r#type: _,
key_id,
key,
value_id,
value_required,
value,
} => Map(MapType {
key_field: NestedField::map_key_element(key_id, key.into_owned()),
value_field: NestedField::map_value_element(
value_id,
value.into_owned(),
value_required,
),
}),
SerdeType::Struct { r#type: _, fields } => {
Self::Struct(StructType::new(fields.into_owned()))
}
SerdeType::Primitive(p) => Self::Primitive(p),
}
}