in crates/core/src/avro_to_arrow/arrow_array_reader.rs [776:799]
fn read_primitive_list_values<T>(&self, rows: &[&Value]) -> ArrayData
where
T: ArrowPrimitiveType + ArrowNumericType,
T::Native: NumCast,
{
let values = rows
.iter()
.flat_map(|row| {
let row = maybe_resolve_union(row);
if let Value::Array(values) = row {
values
.iter()
.map(resolve_item::<T>)
.collect::<Vec<Option<T::Native>>>()
} else if let Some(f) = resolve_item::<T>(row) {
vec![Some(f)]
} else {
vec![]
}
})
.collect::<Vec<Option<T::Native>>>();
let array = values.iter().collect::<PrimitiveArray<T>>();
array.to_data()
}