| @@ -155,134 +155,6 @@ impl<'a, 'de> serde::de::Visitor<'de> for StructVisitor<'a> { | |||
| } | |||
| } | |||
| // struct ListVisitor { | |||
| // field: Arc<Field>, | |||
| // defaults: ArrayData, | |||
| // } | |||
| // impl<'de> serde::de::Visitor<'de> for ListVisitor { | |||
| // type Value = ArrayData; | |||
| // fn expecting(&self, formatter: &mut fmt::Formatter) -> fmt::Result { | |||
| // formatter.write_str("an array encoded as sequence") | |||
| // } | |||
| // fn visit_seq<A>(self, mut data: A) -> Result<Self::Value, A::Error> | |||
| // where | |||
| // A: serde::de::SeqAccess<'de>, | |||
| // { | |||
| // let data = match self.field.data_type().clone() { | |||
| // DataType::UInt8 => { | |||
| // let mut array = UInt8Builder::new(); | |||
| // while let Some(value) = data.next_element::<u8>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::UInt16 => { | |||
| // let mut array = UInt16Builder::new(); | |||
| // while let Some(value) = data.next_element::<u16>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::UInt32 => { | |||
| // let mut array = UInt32Builder::new(); | |||
| // while let Some(value) = data.next_element::<u32>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::UInt64 => { | |||
| // let mut array = UInt64Builder::new(); | |||
| // while let Some(value) = data.next_element::<u64>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Int8 => { | |||
| // let mut array = Int8Builder::new(); | |||
| // while let Some(value) = data.next_element::<i8>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Int16 => { | |||
| // let mut array = Int16Builder::new(); | |||
| // while let Some(value) = data.next_element::<i16>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Int32 => { | |||
| // let mut array = Int32Builder::new(); | |||
| // while let Some(value) = data.next_element::<i32>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Int64 => { | |||
| // let mut array = Int64Builder::new(); | |||
| // while let Some(value) = data.next_element::<i64>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Float32 => { | |||
| // let mut array = Float32Builder::new(); | |||
| // while let Some(value) = data.next_element::<f32>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Float64 => { | |||
| // let mut array = Float64Builder::new(); | |||
| // while let Some(value) = data.next_element::<f64>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // DataType::Utf8 => { | |||
| // let mut array = StringBuilder::new(); | |||
| // while let Some(value) = data.next_element::<String>()? { | |||
| // array.append_value(value); | |||
| // } | |||
| // Ok(array.finish().into()) | |||
| // } | |||
| // _ => { | |||
| // let mut buffer = vec![]; | |||
| // while let Some(value) = data.next_element_seed(StructDeserializer { | |||
| // type_info: TypeInfo { | |||
| // data_type: self.field.data_type().clone(), | |||
| // defaults: self.defaults.clone(), | |||
| // }, | |||
| // })? { | |||
| // let element = make_array(value); | |||
| // buffer.push(element); | |||
| // } | |||
| // concat( | |||
| // buffer | |||
| // .iter() | |||
| // .map(|data| data.as_ref()) | |||
| // .collect::<Vec<_>>() | |||
| // .as_slice(), | |||
| // ) | |||
| // .map(|op| op.to_data()) | |||
| // } | |||
| // }; | |||
| // if let Ok(values) = data { | |||
| // let offsets = OffsetBuffer::new(vec![0, values.len() as i32].into()); | |||
| // let array = ListArray::new(self.field, offsets, make_array(values), None).to_data(); | |||
| // Ok(array) | |||
| // } else { | |||
| // Ok(self.defaults) // TODO: Better handle deserialization error | |||
| // } | |||
| // } | |||
| // } | |||
| fn error<E, T>(e: T) -> E | |||
| where | |||
| T: Display, | |||