Skip to content

Commit dc56eac

Browse files
authored
Cheaper maybe_from (#1677)
1 parent e8323ac commit dc56eac

File tree

11 files changed

+15
-14
lines changed

11 files changed

+15
-14
lines changed

bench-vortex/benches/compress.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ fn parquet_decompress_read(buf: bytes::Bytes) -> usize {
104104
}
105105

106106
fn parquet_compressed_written_size(array: &ArrayData, compression: Compression) -> usize {
107-
let chunked = ChunkedArray::maybe_from(array.clone()).unwrap();
107+
let chunked = ChunkedArray::maybe_from(array).unwrap();
108108
let (batches, schema) = chunked_to_vec_record_batch(chunked);
109109
parquet_compress_write(batches, schema, compression, &mut Vec::new())
110110
}

vortex-array/src/array/extension/compute/compare.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ impl CompareFn<ExtensionArray> for ExtensionEncoding {
2323
}
2424

2525
// If the RHS is an extension array matching ours, we can extract the storage.
26-
if let Some(rhs_ext) = ExtensionArray::maybe_from(rhs.clone()) {
26+
if let Some(rhs_ext) = ExtensionArray::maybe_from(rhs) {
2727
return compare(lhs.storage(), rhs_ext.storage(), operator).map(Some);
2828
}
2929

vortex-array/src/macros.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,9 @@ macro_rules! impl_encoding {
6464
///
6565
/// Preferred in cases where a backtrace isn't needed, like when trying multiple encoding to go
6666
/// down different code paths.
67-
pub fn maybe_from(data: $crate::ArrayData) -> Option<Self> {
68-
(data.encoding().id() == <[<$Name Encoding>] as $crate::encoding::Encoding>::ID).then_some(Self(data))
67+
pub fn maybe_from(data: impl AsRef<$crate::ArrayData>) -> Option<Self> {
68+
let data = data.as_ref();
69+
(data.encoding().id() == <[<$Name Encoding>] as $crate::encoding::Encoding>::ID).then_some(Self(data.clone()))
6970
}
7071
}
7172

vortex-ipc/src/stream_writer/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ impl<W: VortexWrite> StreamArrayWriter<W> {
8282
}
8383

8484
pub async fn write_array(self, array: ArrayData) -> VortexResult<Self> {
85-
if let Some(chunked_array) = ChunkedArray::maybe_from(array.clone()) {
85+
if let Some(chunked_array) = ChunkedArray::maybe_from(&array) {
8686
self.write_array_stream(chunked_array.array_stream()).await
8787
} else {
8888
self.write_array_stream(array.into_array_stream()).await

vortex-sampling-compressor/src/compressors/alp.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl EncodingCompressor for ALPCompressor {
2828

2929
fn can_compress(&self, array: &ArrayData) -> Option<&dyn EncodingCompressor> {
3030
// Only support primitive arrays
31-
let parray = PrimitiveArray::maybe_from(array.clone())?;
31+
let parray = PrimitiveArray::maybe_from(array)?;
3232

3333
// Only supports f32 and f64
3434
if !matches!(parray.ptype(), PType::F32 | PType::F64) {

vortex-sampling-compressor/src/compressors/alp_rd.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ impl EncodingCompressor for ALPRDCompressor {
3434

3535
fn can_compress(&self, array: &ArrayData) -> Option<&dyn EncodingCompressor> {
3636
// Only support primitive arrays
37-
let parray = PrimitiveArray::maybe_from(array.clone())?;
37+
let parray = PrimitiveArray::maybe_from(array)?;
3838

3939
// Only supports f32 and f64
4040
if !matches!(parray.ptype(), PType::F32 | PType::F64) {

vortex-sampling-compressor/src/compressors/bitpacked.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ impl EncodingCompressor for BitPackedCompressor {
5555

5656
fn can_compress(&self, array: &ArrayData) -> Option<&dyn EncodingCompressor> {
5757
// Only support primitive arrays
58-
let parray = PrimitiveArray::maybe_from(array.clone())?;
58+
let parray = PrimitiveArray::maybe_from(array)?;
5959

6060
// Only supports unsigned ints
6161
if !parray.ptype().is_unsigned_int() {

vortex-sampling-compressor/src/compressors/delta.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ impl EncodingCompressor for DeltaCompressor {
2323

2424
fn can_compress(&self, array: &ArrayData) -> Option<&dyn EncodingCompressor> {
2525
// Only support primitive arrays
26-
let parray = PrimitiveArray::maybe_from(array.clone())?;
26+
let parray = PrimitiveArray::maybe_from(array)?;
2727

2828
// Only supports ints
2929
if !parray.ptype().is_unsigned_int() {

vortex-sampling-compressor/src/compressors/dict.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ impl EncodingCompressor for DictCompressor {
5454
like: Option<CompressionTree<'a>>,
5555
ctx: SamplingCompressor<'a>,
5656
) -> VortexResult<CompressedArray<'a>> {
57-
let (codes, values) = if let Some(p) = PrimitiveArray::maybe_from(array.clone()) {
57+
let (codes, values) = if let Some(p) = PrimitiveArray::maybe_from(array) {
5858
let (codes, values) = dict_encode_primitive(&p);
5959
(codes.into_array(), values.into_array())
60-
} else if let Some(vb) = VarBinArray::maybe_from(array.clone()) {
60+
} else if let Some(vb) = VarBinArray::maybe_from(array) {
6161
let (codes, values) = dict_encode_varbin(&vb);
6262
(codes.into_array(), values.into_array())
63-
} else if let Some(vb) = VarBinViewArray::maybe_from(array.clone()) {
63+
} else if let Some(vb) = VarBinViewArray::maybe_from(array) {
6464
let (codes, values) = dict_encode_varbinview(&vb);
6565
(codes.into_array(), values.into_array())
6666
} else {

vortex-sampling-compressor/src/compressors/for.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ impl EncodingCompressor for FoRCompressor {
2626

2727
fn can_compress(&self, array: &ArrayData) -> Option<&dyn EncodingCompressor> {
2828
// Only support primitive arrays
29-
let parray = PrimitiveArray::maybe_from(array.clone())?;
29+
let parray = PrimitiveArray::maybe_from(array)?;
3030

3131
// Only supports integers
3232
if !parray.ptype().is_int() {

0 commit comments

Comments
 (0)