diff --git a/src/array/fixed_size_list/mutable.rs b/src/array/fixed_size_list/mutable.rs index 1ffcd15c4dd..5798e4472e2 100644 --- a/src/array/fixed_size_list/mutable.rs +++ b/src/array/fixed_size_list/mutable.rs @@ -32,13 +32,7 @@ impl MutableFixedSizeListArray { /// Creates a new [`MutableFixedSizeListArray`] from a [`MutableArray`] and size. pub fn new(values: M, size: usize) -> Self { let data_type = FixedSizeListArray::default_datatype(values.data_type().clone(), size); - assert_eq!(values.len(), 0); - Self { - size, - data_type, - values, - validity: None, - } + Self::new_from(values, data_type, size) } /// Creates a new [`MutableFixedSizeListArray`] from a [`MutableArray`] and size. @@ -47,7 +41,16 @@ impl MutableFixedSizeListArray { Box::new(Field::new(name, values.data_type().clone(), nullable)), size, ); + Self::new_from(values, data_type, size) + } + + /// Creates a new [`MutableFixedSizeListArray`] from a [`MutableArray`], [`DataType`] and size. + pub fn new_from(values: M, data_type: DataType, size: usize) -> Self { assert_eq!(values.len(), 0); + match data_type { + DataType::FixedSizeList(..) => (), + _ => panic!("data type must be FixedSizeList (got {:?})", data_type), + }; Self { size, data_type,