This is an automated email from the ASF dual-hosted git repository. uwe 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 6132fd3 ARROW-2615: [Rust] Post refactor cleanup 6132fd3 is described below commit 6132fd387bc4adb15eea05ad5567e03d63e16e26 Author: Andy Grove <andygrov...@gmail.com> AuthorDate: Mon May 21 14:12:54 2018 +0200 ARROW-2615: [Rust] Post refactor cleanup Just a couple of trivial changes that got missed in the refactor: - Derive Eq trait for DataType and Field (because I rely on that as a user of this library) - ArrowPrimitiveType should NOT be implemented for strings Author: Andy Grove <andygrov...@gmail.com> Closes #2070 from andygrove/post_refactor_cleanup and squashes the following commits: 6b245a4e <Andy Grove> add accessor methods to ListArray 3289e3bc <Andy Grove> Update examples 236fde8e <Andy Grove> Minor post-refactor cleanup 82765f93 <Andy Grove> Merge remote-tracking branch 'upstream/master' d1bfdca5 <Andy Grove> Merge branch 'master' of github.com:andygrove/arrow 52de6a10 <Andy Grove> Merge branch 'master' of github.com:andygrove/arrow 0e2606b2 <Andy Grove> Merge remote-tracking branch 'upstream/master' d883da2f <Andy Grove> Merge remote-tracking branch 'upstream/master' 589ef71d <Andy Grove> Merge remote-tracking branch 'upstream/master' bd4fbb55 <Andy Grove> Merge remote-tracking branch 'upstream/master' 9c8a10a4 <Andy Grove> Merge remote-tracking branch 'upstream/master' 05592f8c <Andy Grove> Merge remote-tracking branch 'upstream/master' 8c0e6982 <Andy Grove> Merge remote-tracking branch 'upstream/master' 31ef90ba <Andy Grove> Merge remote-tracking branch 'upstream/master' 2f87c703 <Andy Grove> Fix build - add missing import --- rust/examples/dynamic_types.rs | 2 +- rust/src/array.rs | 16 ++++++++++++++++ rust/src/datatypes.rs | 5 ++--- rust/src/record_batch.rs | 2 +- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/rust/examples/dynamic_types.rs b/rust/examples/dynamic_types.rs index acfd515..86a1890 100644 --- a/rust/examples/dynamic_types.rs +++ b/rust/examples/dynamic_types.rs @@ -43,7 +43,7 @@ fn main() { let id = PrimitiveArray::from(vec![1, 2, 3, 4, 5]); let nested = StructArray::from(vec![ - Rc::new(PrimitiveArray::from(vec!["a", "b", "c", "d", "e"])) as Rc<Array>, + Rc::new(ListArray::from(vec!["a", "b", "c", "d", "e"])) as Rc<Array>, Rc::new(PrimitiveArray::from(vec![1.1, 2.2, 3.3, 4.4, 5.5])), Rc::new(PrimitiveArray::from(vec![2.2, 3.3, 4.4, 5.5, 6.6])), ]); diff --git a/rust/src/array.rs b/rust/src/array.rs index 5305279..34294a5 100644 --- a/rust/src/array.rs +++ b/rust/src/array.rs @@ -55,6 +55,18 @@ impl<T> ListArray<T> where T: ArrowPrimitiveType, { + pub fn len(&self) -> usize { + self.len + } + + pub fn null_count(&self) -> usize { + self.null_count + } + + pub fn validity_bitmap(&self) -> &Option<Bitmap> { + &self.validity_bitmap + } + pub fn get(&self, i: usize) -> &[T] { self.data.get(i) } @@ -145,6 +157,10 @@ where self.len } + pub fn get(&self, i: usize) -> &T { + self.data.get(i) + } + pub fn iter(&self) -> BufferIterator<T> { self.data.iter() } diff --git a/rust/src/datatypes.rs b/rust/src/datatypes.rs index d1ac454..83a157a 100644 --- a/rust/src/datatypes.rs +++ b/rust/src/datatypes.rs @@ -20,7 +20,7 @@ use serde_json::Value; use std::fmt; /// Arrow data type -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub enum DataType { Boolean, Int8, @@ -40,7 +40,7 @@ pub enum DataType { } /// Arrow struct/schema field -#[derive(Debug, Clone, PartialEq)] +#[derive(Debug, Clone, PartialEq, Eq)] pub struct Field { name: String, data_type: DataType, @@ -61,7 +61,6 @@ impl ArrowPrimitiveType for i32 {} impl ArrowPrimitiveType for i64 {} impl ArrowPrimitiveType for f32 {} impl ArrowPrimitiveType for f64 {} -impl ArrowPrimitiveType for &'static str {} impl DataType { /// Parse a data type from a JSON representation diff --git a/rust/src/record_batch.rs b/rust/src/record_batch.rs index d8ca2f1..69509e4 100644 --- a/rust/src/record_batch.rs +++ b/rust/src/record_batch.rs @@ -66,7 +66,7 @@ mod tests { ]); let a = PrimitiveArray::from(vec![1, 2, 3, 4, 5]); - let b = PrimitiveArray::from(vec!["a", "b", "c", "d", "e"]); + let b = ListArray::from(vec!["a", "b", "c", "d", "e"]); let record_batch = RecordBatch::new(Rc::new(schema), vec![Rc::new(a), Rc::new(b)]); -- To stop receiving notification emails like this one, please contact u...@apache.org.