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>