You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by tu...@apache.org on 2022/11/23 08:53:28 UTC
[arrow-rs] branch master updated: Remove unnecessary downcasts in builders (#3166)
This is an automated email from the ASF dual-hosted git repository.
tustvold pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow-rs.git
The following commit(s) were added to refs/heads/master by this push:
new fa513333a Remove unnecessary downcasts in builders (#3166)
fa513333a is described below
commit fa513333abf25ee6938d1df98554538324a7069b
Author: Raphael Taylor-Davies <17...@users.noreply.github.com>
AuthorDate: Wed Nov 23 08:53:23 2022 +0000
Remove unnecessary downcasts in builders (#3166)
---
arrow-array/src/builder/fixed_size_list_builder.rs | 11 +++--------
arrow-array/src/builder/generic_list_builder.rs | 7 +------
arrow-array/src/builder/map_builder.rs | 14 ++------------
3 files changed, 6 insertions(+), 26 deletions(-)
diff --git a/arrow-array/src/builder/fixed_size_list_builder.rs b/arrow-array/src/builder/fixed_size_list_builder.rs
index e15708ed6..f6388d789 100644
--- a/arrow-array/src/builder/fixed_size_list_builder.rs
+++ b/arrow-array/src/builder/fixed_size_list_builder.rs
@@ -111,16 +111,11 @@ where
/// Builds the [`FixedSizeListBuilder`] and reset this builder.
pub fn finish(&mut self) -> FixedSizeListArray {
let len = self.len();
- let values_arr = self
- .values_builder
- .as_any_mut()
- .downcast_mut::<T>()
- .unwrap()
- .finish();
+ let values_arr = self.values_builder.finish();
let values_data = values_arr.data();
- assert!(
- values_data.len() == len * self.list_len as usize,
+ assert_eq!(
+ values_data.len(), len * self.list_len as usize,
"Length of the child array ({}) must be the multiple of the value length ({}) and the array length ({}).",
values_data.len(),
self.list_len,
diff --git a/arrow-array/src/builder/generic_list_builder.rs b/arrow-array/src/builder/generic_list_builder.rs
index f07757971..116567864 100644
--- a/arrow-array/src/builder/generic_list_builder.rs
+++ b/arrow-array/src/builder/generic_list_builder.rs
@@ -115,12 +115,7 @@ where
/// Builds the [`GenericListArray`] and reset this builder.
pub fn finish(&mut self) -> GenericListArray<OffsetSize> {
let len = self.len();
- let values_arr = self
- .values_builder
- .as_any_mut()
- .downcast_mut::<T>()
- .unwrap()
- .finish();
+ let values_arr = self.values_builder.finish();
let values_data = values_arr.data();
let offset_buffer = self.offsets_builder.finish();
diff --git a/arrow-array/src/builder/map_builder.rs b/arrow-array/src/builder/map_builder.rs
index 71ca8480a..4b7597248 100644
--- a/arrow-array/src/builder/map_builder.rs
+++ b/arrow-array/src/builder/map_builder.rs
@@ -107,18 +107,8 @@ impl<K: ArrayBuilder, V: ArrayBuilder> MapBuilder<K, V> {
let len = self.len();
// Build the keys
- let keys_arr = self
- .key_builder
- .as_any_mut()
- .downcast_mut::<K>()
- .unwrap()
- .finish();
- let values_arr = self
- .value_builder
- .as_any_mut()
- .downcast_mut::<V>()
- .unwrap()
- .finish();
+ let keys_arr = self.key_builder.finish();
+ let values_arr = self.value_builder.finish();
let keys_field = Field::new(
self.field_names.key.as_str(),