Struct arrow::array::BooleanArray
source · pub struct BooleanArray { /* private fields */ }
Expand description
Array of bools
Example
use arrow_array::{Array, BooleanArray};
let arr = BooleanArray::from(vec![Some(false), Some(true), None, Some(true)]);
assert_eq!(4, arr.len());
assert_eq!(1, arr.null_count());
assert!(arr.is_valid(0));
assert!(!arr.is_null(0));
assert_eq!(false, arr.value(0));
assert!(arr.is_valid(1));
assert!(!arr.is_null(1));
assert_eq!(true, arr.value(1));
assert!(!arr.is_valid(2));
assert!(arr.is_null(2));
assert!(arr.is_valid(3));
assert!(!arr.is_null(3));
assert_eq!(true, arr.value(3));
Using from_iter
use arrow_array::{Array, BooleanArray};
let v = vec![Some(false), Some(true), Some(false), Some(true)];
let arr = v.into_iter().collect::<BooleanArray>();
assert_eq!(4, arr.len());
assert_eq!(0, arr.offset());
assert_eq!(0, arr.null_count());
assert!(arr.is_valid(0));
assert_eq!(false, arr.value(0));
assert!(arr.is_valid(1));
assert_eq!(true, arr.value(1));
assert!(arr.is_valid(2));
assert_eq!(false, arr.value(2));
assert!(arr.is_valid(3));
assert_eq!(true, arr.value(3));
Implementations§
source§impl BooleanArray
impl BooleanArray
sourcepub fn builder(capacity: usize) -> BooleanBuilder
pub fn builder(capacity: usize) -> BooleanBuilder
Returns a new boolean array builder
sourcepub fn values(&self) -> &Buffer
pub fn values(&self) -> &Buffer
Returns a Buffer
holding all the values of this array.
Note this doesn’t take the offset of this array into account.
sourcepub fn true_count(&self) -> usize
pub fn true_count(&self) -> usize
Returns the number of non null, true values within this array
sourcepub fn false_count(&self) -> usize
pub fn false_count(&self) -> usize
Returns the number of non null, false values within this array
sourcepub unsafe fn value_unchecked(&self, i: usize) -> bool
pub unsafe fn value_unchecked(&self, i: usize) -> bool
Returns the boolean value at index i
.
Safety
This doesn’t check bounds, the caller must ensure that index < self.len()
sourcepub fn take_iter<'a>(
&'a self,
indexes: impl Iterator<Item = Option<usize>> + 'a
) -> impl Iterator<Item = Option<bool>> + 'a
pub fn take_iter<'a>(
&'a self,
indexes: impl Iterator<Item = Option<usize>> + 'a
) -> impl Iterator<Item = Option<bool>> + 'a
Returns an iterator that returns the values of array.value(i)
for an iterator with each element i
sourcepub unsafe fn take_iter_unchecked<'a>(
&'a self,
indexes: impl Iterator<Item = Option<usize>> + 'a
) -> impl Iterator<Item = Option<bool>> + 'a
pub unsafe fn take_iter_unchecked<'a>(
&'a self,
indexes: impl Iterator<Item = Option<usize>> + 'a
) -> impl Iterator<Item = Option<bool>> + 'a
Returns an iterator that returns the values of array.value(i)
for an iterator with each element i
Safety
caller must ensure that the offsets in the iterator are less than the array len()
sourcepub fn from_unary<T, F>(left: T, op: F) -> BooleanArraywhere
T: ArrayAccessor,
F: FnMut(<T as ArrayAccessor>::Item) -> bool,
pub fn from_unary<T, F>(left: T, op: F) -> BooleanArraywhere
T: ArrayAccessor,
F: FnMut(<T as ArrayAccessor>::Item) -> bool,
Create a BooleanArray
by evaluating the operation for
each element of the provided array
let array = Int32Array::from(vec![1, 2, 3, 4, 5]);
let r = BooleanArray::from_unary(&array, |x| x > 2);
assert_eq!(&r, &BooleanArray::from(vec![false, false, true, true, true]));
sourcepub fn from_binary<T, S, F>(left: T, right: S, op: F) -> BooleanArraywhere
T: ArrayAccessor,
S: ArrayAccessor,
F: FnMut(<T as ArrayAccessor>::Item, <S as ArrayAccessor>::Item) -> bool,
pub fn from_binary<T, S, F>(left: T, right: S, op: F) -> BooleanArraywhere
T: ArrayAccessor,
S: ArrayAccessor,
F: FnMut(<T as ArrayAccessor>::Item, <S as ArrayAccessor>::Item) -> bool,
Create a BooleanArray
by evaluating the binary operation for
each element of the provided arrays
let a = Int32Array::from(vec![1, 2, 3, 4, 5]);
let b = Int32Array::from(vec![1, 2, 0, 2, 5]);
let r = BooleanArray::from_binary(&a, &b, |a, b| a == b);
assert_eq!(&r, &BooleanArray::from(vec![true, true, false, false, true]));
Panics
This function panics if left and right are not the same length
source§impl<'a> BooleanArray
impl<'a> BooleanArray
sourcepub fn iter(&'a self) -> ArrayIter<&'a BooleanArray> ⓘ
pub fn iter(&'a self) -> ArrayIter<&'a BooleanArray> ⓘ
constructs a new iterator
Trait Implementations§
source§impl Array for BooleanArray
impl Array for BooleanArray
source§fn data_ref(&self) -> &ArrayData
fn data_ref(&self) -> &ArrayData
source§fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array + 'static>
fn slice(&self, offset: usize, length: usize) -> Arc<dyn Array + 'static>
source§fn offset(&self) -> usize
fn offset(&self) -> usize
0
. Read moresource§fn is_null(&self, index: usize) -> bool
fn is_null(&self, index: usize) -> bool
index
is null.
When using this function on a slice, the index is relative to the slice. Read moresource§fn is_valid(&self, index: usize) -> bool
fn is_valid(&self, index: usize) -> bool
index
is not null.
When using this function on a slice, the index is relative to the slice. Read moresource§fn null_count(&self) -> usize
fn null_count(&self) -> usize
source§fn get_buffer_memory_size(&self) -> usize
fn get_buffer_memory_size(&self) -> usize
source§fn get_array_memory_size(&self) -> usize
fn get_array_memory_size(&self) -> usize
get_buffer_memory_size()
and
includes the overhead of the data structures that contain the pointers to the various buffers.source§impl<'a> ArrayAccessor for &'a BooleanArray
impl<'a> ArrayAccessor for &'a BooleanArray
source§fn value(&self, index: usize) -> <&'a BooleanArray as ArrayAccessor>::Item
fn value(&self, index: usize) -> <&'a BooleanArray as ArrayAccessor>::Item
i
Read moresource§unsafe fn value_unchecked(
&self,
index: usize
) -> <&'a BooleanArray as ArrayAccessor>::Item
unsafe fn value_unchecked(
&self,
index: usize
) -> <&'a BooleanArray as ArrayAccessor>::Item
i
Read moresource§impl Clone for BooleanArray
impl Clone for BooleanArray
source§fn clone(&self) -> BooleanArray
fn clone(&self) -> BooleanArray
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for BooleanArray
impl Debug for BooleanArray
source§impl From<ArrayData> for BooleanArray
impl From<ArrayData> for BooleanArray
source§fn from(data: ArrayData) -> BooleanArray
fn from(data: ArrayData) -> BooleanArray
source§impl From<BooleanArray> for ArrayData
impl From<BooleanArray> for ArrayData
source§fn from(array: BooleanArray) -> ArrayData
fn from(array: BooleanArray) -> ArrayData
source§impl<Ptr> FromIterator<Ptr> for BooleanArraywhere
Ptr: Borrow<Option<bool>>,
impl<Ptr> FromIterator<Ptr> for BooleanArraywhere
Ptr: Borrow<Option<bool>>,
source§fn from_iter<I>(iter: I) -> BooleanArraywhere
I: IntoIterator<Item = Ptr>,
fn from_iter<I>(iter: I) -> BooleanArraywhere
I: IntoIterator<Item = Ptr>,
source§impl<'a> IntoIterator for &'a BooleanArray
impl<'a> IntoIterator for &'a BooleanArray
§type IntoIter = ArrayIter<&'a BooleanArray>
type IntoIter = ArrayIter<&'a BooleanArray>
source§fn into_iter(self) -> <&'a BooleanArray as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a BooleanArray as IntoIterator>::IntoIter
source§impl PartialEq<BooleanArray> for BooleanArray
impl PartialEq<BooleanArray> for BooleanArray
source§fn eq(&self, other: &BooleanArray) -> bool
fn eq(&self, other: &BooleanArray) -> bool
self
and other
values to be equal, and is used
by ==
.