You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by jo...@apache.org on 2020/12/27 18:20:27 UTC
[arrow] branch master updated: ARROW-11028: [Rust] Make a few
pattern matches more idiomatic
This is an automated email from the ASF dual-hosted git repository.
jorgecarleitao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new e1b38cd ARROW-11028: [Rust] Make a few pattern matches more idiomatic
e1b38cd is described below
commit e1b38cdaa4f2a7d35e2e576463e12b38875f29f3
Author: François Garillot <fr...@garillot.net>
AuthorDate: Sun Dec 27 18:19:27 2020 +0000
ARROW-11028: [Rust] Make a few pattern matches more idiomatic
Some pattern-matches can be replaced by a direct combinator equivalent.
Closes #9006 from huitseeker/warts-2
Authored-by: François Garillot <fr...@garillot.net>
Signed-off-by: Jorge C. Leitao <jo...@gmail.com>
---
rust/arrow/src/array/array_binary.rs | 3 +--
rust/arrow/src/compute/kernels/cast.rs | 5 +----
rust/datafusion/src/physical_plan/expressions.rs | 7 +++----
rust/parquet_derive/src/parquet_field.rs | 18 +++---------------
4 files changed, 8 insertions(+), 25 deletions(-)
diff --git a/rust/arrow/src/array/array_binary.rs b/rust/arrow/src/array/array_binary.rs
index da64072..db4097a 100644
--- a/rust/arrow/src/array/array_binary.rs
+++ b/rust/arrow/src/array/array_binary.rs
@@ -399,8 +399,7 @@ impl From<Vec<Option<Vec<u8>>>> for FixedSizeBinaryArray {
let data = data
.into_iter()
- .map(|e| e.unwrap_or_else(|| vec![0; size]))
- .flatten()
+ .flat_map(|e| e.unwrap_or_else(|| vec![0; size]))
.collect::<Vec<_>>();
let data = ArrayData::new(
DataType::FixedSizeBinary(size as i32),
diff --git a/rust/arrow/src/compute/kernels/cast.rs b/rust/arrow/src/compute/kernels/cast.rs
index 028f115..f112876 100644
--- a/rust/arrow/src/compute/kernels/cast.rs
+++ b/rust/arrow/src/compute/kernels/cast.rs
@@ -882,10 +882,7 @@ where
R::Native: num::NumCast,
{
from.iter()
- .map(|v| match v {
- Some(v) => num::cast::cast::<T::Native, R::Native>(v),
- None => None,
- })
+ .map(|v| v.and_then(num::cast::cast::<T::Native, R::Native>))
.collect()
}
diff --git a/rust/datafusion/src/physical_plan/expressions.rs b/rust/datafusion/src/physical_plan/expressions.rs
index 75120e6..b0bbd77 100644
--- a/rust/datafusion/src/physical_plan/expressions.rs
+++ b/rust/datafusion/src/physical_plan/expressions.rs
@@ -473,10 +473,9 @@ impl Accumulator for AvgAccumulator {
fn evaluate(&self) -> Result<ScalarValue> {
match self.sum {
- ScalarValue::Float64(e) => Ok(ScalarValue::Float64(match e {
- Some(f) => Some(f / self.count as f64),
- None => None,
- })),
+ ScalarValue::Float64(e) => {
+ Ok(ScalarValue::Float64(e.map(|f| f / self.count as f64)))
+ }
_ => Err(DataFusionError::Internal(
"Sum should be f64 on average".to_string(),
)),
diff --git a/rust/parquet_derive/src/parquet_field.rs b/rust/parquet_derive/src/parquet_field.rs
index 007879e..328f4a6 100644
--- a/rust/parquet_derive/src/parquet_field.rs
+++ b/rust/parquet_derive/src/parquet_field.rs
@@ -826,11 +826,7 @@ mod test {
{
let definition_levels : Vec<i16> = self.iter().map(|rec| if rec.maybe_happened.is_some() { 1 } else { 0 }).collect();
let vals : Vec<_> = records.iter().filter_map(|rec| {
- if let Some(inner) = rec.maybe_happened {
- Some( inner.timestamp_millis() )
- } else {
- None
- }
+ rec.maybe_happened.map(|inner| { inner.timestamp_millis() })
}).collect();
if let parquet::column::writer::ColumnWriter::Int64ColumnWriter(ref mut typed) = column_writer {
@@ -870,11 +866,7 @@ mod test {
{
let definition_levels : Vec<i16> = self.iter().map(|rec| if rec.maybe_happened.is_some() { 1 } else { 0 }).collect();
let vals : Vec<_> = records.iter().filter_map(|rec| {
- if let Some(inner) = rec.maybe_happened {
- Some( inner.signed_duration_since(chrono::NaiveDate::from_ymd(1970, 1, 1)).num_days() as i32 )
- } else {
- None
- }
+ rec.maybe_happened.map(|inner| { inner.signed_duration_since(chrono::NaiveDate::from_ymd(1970, 1, 1)).num_days() as i32 })
}).collect();
if let parquet::column::writer::ColumnWriter::Int32ColumnWriter(ref mut typed) = column_writer {
@@ -914,11 +906,7 @@ mod test {
{
let definition_levels : Vec<i16> = self.iter().map(|rec| if rec.maybe_unique_id.is_some() { 1 } else { 0 }).collect();
let vals : Vec<_> = records.iter().filter_map(|rec| {
- if let Some(ref inner) = rec.maybe_unique_id {
- Some( (&inner.to_string()[..]).into() )
- } else {
- None
- }
+ rec.maybe_unique_id.map(|ref inner| { (&inner.to_string()[..]).into() })
}).collect();
if let parquet::column::writer::ColumnWriter::ByteArrayColumnWriter(ref mut typed) = column_writer {