diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2a7bf850c08..f66071db0c5 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,7 +52,7 @@ jobs: - name: Install clippy run: rustup component add clippy - name: "clippy --all" - run: cargo clippy --all --tests + run: cargo clippy --all --tests -- -D warnings fmt: name: fmt @@ -64,8 +64,8 @@ jobs: - uses: Swatinem/rust-cache@v1 - name: Install rustfmt run: rustup component add rustfmt - - - run: cargo fmt + - name: Run + run: cargo fmt --all -- --check miri-checks: name: Miri diff --git a/src/datatypes/field.rs b/src/datatypes/field.rs index af18073070a..8fc544f1ffd 100644 --- a/src/datatypes/field.rs +++ b/src/datatypes/field.rs @@ -278,19 +278,3 @@ impl std::fmt::Display for Field { write!(f, "{:?}", self) } } - -pub(crate) type Metadata = Option>; -pub(crate) type Extension = Option<(String, Option)>; - -pub(crate) fn get_extension(metadata: &Option>) -> Extension { - if let Some(metadata) = metadata { - if let Some(name) = metadata.get("ARROW:extension:name") { - let metadata = metadata.get("ARROW:extension:metadata").cloned(); - Some((name.clone(), metadata)) - } else { - None - } - } else { - None - } -} diff --git a/src/datatypes/mod.rs b/src/datatypes/mod.rs index d8fbabe1e3d..b1c01d83570 100644 --- a/src/datatypes/mod.rs +++ b/src/datatypes/mod.rs @@ -8,8 +8,6 @@ pub use field::Field; pub use physical_type::*; pub use schema::Schema; -pub(crate) use field::{get_extension, Extension, Metadata}; - /// The set of supported logical types. /// Each variant uniquely identifies a logical type, which define specific semantics to the data (e.g. how it should be represented). /// Each variant has a corresponding [`PhysicalType`], obtained via [`DataType::to_physical_type`], @@ -270,6 +268,27 @@ fn to_dictionary_index_type(data_type: &DataType) -> DictionaryIndexType { } // backward compatibility +use std::collections::BTreeMap; use std::sync::Arc; + /// typedef for [`Arc`]. pub type SchemaRef = Arc; + +/// typedef for [Option>]. +pub type Metadata = Option>; +/// typedef fpr [Option<(String, Option)>]. +pub type Extension = Option<(String, Option)>; + +/// support get extension for metadata +pub fn get_extension(metadata: &Option>) -> Extension { + if let Some(metadata) = metadata { + if let Some(name) = metadata.get("ARROW:extension:name") { + let metadata = metadata.get("ARROW:extension:metadata").cloned(); + Some((name.clone(), metadata)) + } else { + None + } + } else { + None + } +} diff --git a/src/io/ipc/convert.rs b/src/io/ipc/convert.rs index 73706853399..d6f3edfc1b9 100644 --- a/src/io/ipc/convert.rs +++ b/src/io/ipc/convert.rs @@ -20,8 +20,8 @@ use crate::datatypes::{ get_extension, DataType, Extension, Field, IntervalUnit, Metadata, Schema, TimeUnit, }; -use crate::endianess::is_native_little_endian; use crate::io::ipc::convert::ipc::UnionMode; +use crate::io::ipc::endianess::is_native_little_endian; mod ipc { pub use super::super::gen::File::*; diff --git a/src/endianess.rs b/src/io/ipc/endianess.rs similarity index 100% rename from src/endianess.rs rename to src/io/ipc/endianess.rs diff --git a/src/io/ipc/mod.rs b/src/io/ipc/mod.rs index f6b347534c9..f01ae010340 100644 --- a/src/io/ipc/mod.rs +++ b/src/io/ipc/mod.rs @@ -2,6 +2,10 @@ #![allow(missing_debug_implementations)] #![allow(non_camel_case_types)] + +pub use convert::fb_to_schema; +pub use gen::Message::root_as_message; + #[allow(clippy::redundant_closure)] #[allow(clippy::needless_lifetimes)] #[allow(clippy::extra_unused_lifetimes)] @@ -12,8 +16,7 @@ pub mod gen; mod compression; mod convert; -pub use convert::fb_to_schema; -pub use gen::Message::root_as_message; +mod endianess; pub mod read; pub mod write; diff --git a/src/io/ipc/read/read_basic.rs b/src/io/ipc/read/read_basic.rs index fd84edee754..350661fd21e 100644 --- a/src/io/ipc/read/read_basic.rs +++ b/src/io/ipc/read/read_basic.rs @@ -2,8 +2,8 @@ use std::io::{Read, Seek, SeekFrom}; use std::{collections::VecDeque, convert::TryInto}; use crate::buffer::Buffer; -use crate::endianess::is_native_little_endian; use crate::error::{ArrowError, Result}; +use crate::io::ipc::endianess::is_native_little_endian; use crate::io::ipc::gen::Message::{BodyCompression, CompressionType}; use crate::{bitmap::Bitmap, buffer::MutableBuffer, types::NativeType}; diff --git a/src/io/ipc/write/common.rs b/src/io/ipc/write/common.rs index 2f346912b00..bb22812b1e8 100644 --- a/src/io/ipc/write/common.rs +++ b/src/io/ipc/write/common.rs @@ -25,8 +25,8 @@ use super::{write, write_dictionary}; use flatbuffers::FlatBufferBuilder; use crate::array::Array; -use crate::endianess::is_native_little_endian; use crate::error::{ArrowError, Result}; +use crate::io::ipc::endianess::is_native_little_endian; use crate::record_batch::RecordBatch; use crate::{array::DictionaryArray, datatypes::*}; diff --git a/src/io/ipc/write/serialize.rs b/src/io/ipc/write/serialize.rs index a4e88a9ca98..ba95f2d6d6d 100644 --- a/src/io/ipc/write/serialize.rs +++ b/src/io/ipc/write/serialize.rs @@ -15,18 +15,17 @@ // specific language governing permissions and limitations // under the License. +use crate::io::ipc::endianess::is_native_little_endian; +use crate::io::ipc::gen::Schema; use crate::{ array::*, bitmap::Bitmap, datatypes::{DataType, PhysicalType}, - endianess::is_native_little_endian, io::ipc::gen::Message, trusted_len::TrustedLen, types::NativeType, }; -use crate::io::ipc::gen::Schema; - use super::common::pad_to_8; fn _write_primitive( diff --git a/src/lib.rs b/src/lib.rs index c329968da9e..f015b6bd199 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -9,7 +9,6 @@ pub mod array; mod alloc; pub mod bitmap; pub mod buffer; -mod endianess; pub mod error; pub mod scalar; pub mod trusted_len;