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 a21ac9c15 Fix clippy lints (#4233)
a21ac9c15 is described below

commit a21ac9c15f3557ba8250720c978586c5294678a1
Author: Raphael Taylor-Davies <[email protected]>
AuthorDate: Wed May 17 12:49:24 2023 +0100

    Fix clippy lints (#4233)
---
 arrow-buffer/src/buffer/immutable.rs |  2 +-
 arrow-buffer/src/buffer/mutable.rs   |  3 +--
 arrow-buffer/src/native.rs           |  4 +---
 arrow-data/src/data/mod.rs           |  2 ++
 arrow-data/src/transform/utils.rs    |  2 +-
 arrow-schema/src/ffi.rs              | 17 +++++++++++------
 6 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/arrow-buffer/src/buffer/immutable.rs 
b/arrow-buffer/src/buffer/immutable.rs
index 15d9ff783..a4ab64b84 100644
--- a/arrow-buffer/src/buffer/immutable.rs
+++ b/arrow-buffer/src/buffer/immutable.rs
@@ -80,7 +80,7 @@ impl Buffer {
     /// Initializes a [Buffer] from a slice of items.
     pub fn from_slice_ref<U: ArrowNativeType, T: AsRef<[U]>>(items: T) -> Self 
{
         let slice = items.as_ref();
-        let capacity = slice.len() * std::mem::size_of::<U>();
+        let capacity = std::mem::size_of_val(slice);
         let mut buffer = MutableBuffer::with_capacity(capacity);
         buffer.extend_from_slice(slice);
         buffer.into()
diff --git a/arrow-buffer/src/buffer/mutable.rs 
b/arrow-buffer/src/buffer/mutable.rs
index 43c1cd004..3e66e7f23 100644
--- a/arrow-buffer/src/buffer/mutable.rs
+++ b/arrow-buffer/src/buffer/mutable.rs
@@ -383,8 +383,7 @@ impl MutableBuffer {
     /// ```
     #[inline]
     pub fn extend_from_slice<T: ArrowNativeType>(&mut self, items: &[T]) {
-        let len = items.len();
-        let additional = len * std::mem::size_of::<T>();
+        let additional = mem::size_of_val(items);
         self.reserve(additional);
         unsafe {
             // this assumes that `[ToByteSlice]` can be copied directly
diff --git a/arrow-buffer/src/native.rs b/arrow-buffer/src/native.rs
index 4ea06974b..8fe6cf2b7 100644
--- a/arrow-buffer/src/native.rs
+++ b/arrow-buffer/src/native.rs
@@ -223,9 +223,7 @@ impl<T: ArrowNativeType> ToByteSlice for [T] {
     #[inline]
     fn to_byte_slice(&self) -> &[u8] {
         let raw_ptr = self.as_ptr() as *const T as *const u8;
-        unsafe {
-            std::slice::from_raw_parts(raw_ptr, self.len() * 
std::mem::size_of::<T>())
-        }
+        unsafe { std::slice::from_raw_parts(raw_ptr, 
std::mem::size_of_val(self)) }
     }
 }
 
diff --git a/arrow-data/src/data/mod.rs b/arrow-data/src/data/mod.rs
index 10bf97306..103161f5a 100644
--- a/arrow-data/src/data/mod.rs
+++ b/arrow-data/src/data/mod.rs
@@ -1976,6 +1976,7 @@ mod tests {
         assert!(!int_data.ptr_eq(&float_data));
         assert!(int_data.ptr_eq(&int_data));
 
+        #[allow(clippy::redundant_clone)]
         let int_data_clone = int_data.clone();
         assert_eq!(int_data, int_data_clone);
         assert!(int_data.ptr_eq(&int_data_clone));
@@ -2003,6 +2004,7 @@ mod tests {
 
         assert!(string_data.ptr_eq(&string_data));
 
+        #[allow(clippy::redundant_clone)]
         let string_data_cloned = string_data.clone();
         assert!(string_data_cloned.ptr_eq(&string_data));
         assert!(string_data.ptr_eq(&string_data_cloned));
diff --git a/arrow-data/src/transform/utils.rs 
b/arrow-data/src/transform/utils.rs
index b1e3388ba..17bb87e88 100644
--- a/arrow-data/src/transform/utils.rs
+++ b/arrow-data/src/transform/utils.rs
@@ -32,7 +32,7 @@ pub(super) fn extend_offsets<T: ArrowNativeType + Integer + 
CheckedAdd>(
     mut last_offset: T,
     offsets: &[T],
 ) {
-    buffer.reserve(offsets.len() * std::mem::size_of::<T>());
+    buffer.reserve(std::mem::size_of_val(offsets));
     offsets.windows(2).for_each(|offsets| {
         // compute the new offset
         let length = offsets[1] - offsets[0];
diff --git a/arrow-schema/src/ffi.rs b/arrow-schema/src/ffi.rs
index 9078e35b3..cd3c207a5 100644
--- a/arrow-schema/src/ffi.rs
+++ b/arrow-schema/src/ffi.rs
@@ -37,20 +37,25 @@
 use crate::{
     ArrowError, DataType, Field, FieldRef, Schema, TimeUnit, UnionFields, 
UnionMode,
 };
-use bitflags::bitflags;
 use std::sync::Arc;
 use std::{
     collections::HashMap,
     ffi::{c_char, c_void, CStr, CString},
 };
 
-bitflags! {
-    pub struct Flags: i64 {
-        const DICTIONARY_ORDERED = 0b00000001;
-        const NULLABLE = 0b00000010;
-        const MAP_KEYS_SORTED = 0b00000100;
+#[allow(clippy::assign_op_pattern)]
+/// Workaround <https://github.com/bitflags/bitflags/issues/356>
+mod flags {
+    use bitflags::bitflags;
+    bitflags! {
+        pub struct Flags: i64 {
+            const DICTIONARY_ORDERED = 0b00000001;
+            const NULLABLE = 0b00000010;
+            const MAP_KEYS_SORTED = 0b00000100;
+        }
     }
 }
+pub use flags::*;
 
 /// ABI-compatible struct for `ArrowSchema` from C Data Interface
 /// See 
<https://arrow.apache.org/docs/format/CDataInterface.html#structure-definitions>

Reply via email to