Struct re_arrow2::array::StructArray
source · pub struct StructArray { /* private fields */ }
Expand description
A StructArray
is a nested Array
with an optional validity representing
multiple Array
with the same number of rows.
§Example
use re_arrow2::array::*;
use re_arrow2::datatypes::*;
let boolean = BooleanArray::from_slice(&[false, false, true, true]).boxed();
let int = Int32Array::from_slice(&[42, 28, 19, 31]).boxed();
let fields = vec![
Field::new("b", DataType::Boolean, false),
Field::new("c", DataType::Int32, false),
];
let array = StructArray::new(DataType::Struct(std::sync::Arc::new(fields)), vec![boolean, int], None);
Implementations§
source§impl<'a> StructArray
impl<'a> StructArray
sourcepub fn iter(
&'a self
) -> ZipValidity<Vec<Box<dyn Scalar>>, StructValueIter<'a>, BitmapIter<'a>> ⓘ
pub fn iter( &'a self ) -> ZipValidity<Vec<Box<dyn Scalar>>, StructValueIter<'a>, BitmapIter<'a>> ⓘ
Returns an iterator of Option<Box<dyn Array>>
sourcepub fn values_iter(&'a self) -> StructValueIter<'a>
pub fn values_iter(&'a self) -> StructValueIter<'a>
Returns an iterator of Box<dyn Array>
source§impl StructArray
impl StructArray
sourcepub fn try_new(
data_type: DataType,
values: Vec<Box<dyn Array>>,
validity: Option<Bitmap>
) -> Result<Self, Error>
pub fn try_new( data_type: DataType, values: Vec<Box<dyn Array>>, validity: Option<Bitmap> ) -> Result<Self, Error>
Returns a new StructArray
.
§Errors
This function errors iff:
data_type
’s physical type is notcrate::datatypes::PhysicalType::Struct
.- the children of
data_type
are empty - the values’s len is different from children’s length
- any of the values’s data type is different from its corresponding children’ data type
- any element of values has a different length than the first element
- the validity’s length is not equal to the length of the first element
sourcepub fn new(
data_type: DataType,
values: Vec<Box<dyn Array>>,
validity: Option<Bitmap>
) -> Self
pub fn new( data_type: DataType, values: Vec<Box<dyn Array>>, validity: Option<Bitmap> ) -> Self
Returns a new StructArray
§Panics
This function panics iff:
data_type
’s physical type is notcrate::datatypes::PhysicalType::Struct
.- the children of
data_type
are empty - the values’s len is different from children’s length
- any of the values’s data type is different from its corresponding children’ data type
- any element of values has a different length than the first element
- the validity’s length is not equal to the length of the first element
sourcepub fn new_empty(data_type: DataType) -> Self
pub fn new_empty(data_type: DataType) -> Self
Creates an empty StructArray
.
sourcepub fn new_null(data_type: DataType, length: usize) -> Self
pub fn new_null(data_type: DataType, length: usize) -> Self
Creates a null StructArray
of length length
.
source§impl StructArray
impl StructArray
sourcepub fn into_data(self) -> (Arc<Vec<Field>>, Vec<Box<dyn Array>>, Option<Bitmap>)
pub fn into_data(self) -> (Arc<Vec<Field>>, Vec<Box<dyn Array>>, Option<Bitmap>)
Deconstructs the StructArray
into its individual components.
sourcepub fn slice(&mut self, offset: usize, length: usize)
pub fn slice(&mut self, offset: usize, length: usize)
Slices this StructArray
.
§Panics
offset + length
must be smaller thanself.len()
.
§Implementation
This operation is O(F)
where F
is the number of fields.
sourcepub unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
pub unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
Slices this StructArray
.
§Implementation
This operation is O(F)
where F
is the number of fields.
§Safety
The caller must ensure that offset + length <= self.len()
.
sourcepub unsafe fn sliced_unchecked(self, offset: usize, length: usize) -> Self
pub unsafe fn sliced_unchecked(self, offset: usize, length: usize) -> Self
sourcepub fn with_validity(self, validity: Option<Bitmap>) -> Self
pub fn with_validity(self, validity: Option<Bitmap>) -> Self
sourcepub fn set_validity(&mut self, validity: Option<Bitmap>)
pub fn set_validity(&mut self, validity: Option<Bitmap>)
sourcepub fn boxed(self) -> Box<dyn Array>
pub fn boxed(self) -> Box<dyn Array>
Boxes this array into a Box<dyn Array>
.
sourcepub fn arced(self) -> Arc<dyn Array>
pub fn arced(self) -> Arc<dyn Array>
Arcs this array into a std::sync::Arc<dyn Array>
.
source§impl StructArray
impl StructArray
source§impl StructArray
impl StructArray
sourcepub fn get_fields(data_type: &DataType) -> &[Field]
pub fn get_fields(data_type: &DataType) -> &[Field]
Returns the fields the DataType::Struct
.
Trait Implementations§
source§impl Array for StructArray
impl Array for StructArray
source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Any
, which enables downcasting to concrete types.source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Any
, which enables mutable downcasting to concrete types.source§fn len(&self) -> usize
fn len(&self) -> usize
Array
. Every array has a length corresponding to the number of
elements (slots).source§fn data_type(&self) -> &DataType
fn data_type(&self) -> &DataType
DataType
of the Array
. In combination with Array::as_any
, this can be
used to downcast trait objects (dyn Array
) to concrete arrays.source§unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
unsafe fn slice_unchecked(&mut self, offset: usize, length: usize)
source§unsafe fn is_null_unchecked(&self, i: usize) -> bool
unsafe fn is_null_unchecked(&self, i: usize) -> bool
i
is null. Read moresource§impl Clone for StructArray
impl Clone for StructArray
source§fn clone(&self) -> StructArray
fn clone(&self) -> StructArray
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for StructArray
impl Debug for StructArray
source§impl<'a> From<GrowableStruct<'a>> for StructArray
impl<'a> From<GrowableStruct<'a>> for StructArray
source§fn from(val: GrowableStruct<'a>) -> Self
fn from(val: GrowableStruct<'a>) -> Self
source§impl From<MutableStructArray> for StructArray
impl From<MutableStructArray> for StructArray
source§fn from(other: MutableStructArray) -> Self
fn from(other: MutableStructArray) -> Self
source§impl<'a> IntoIterator for &'a StructArray
impl<'a> IntoIterator for &'a StructArray
§type IntoIter = ZipValidity<Vec<Box<dyn Scalar>>, StructValueIter<'a>, BitmapIter<'a>>
type IntoIter = ZipValidity<Vec<Box<dyn Scalar>>, StructValueIter<'a>, BitmapIter<'a>>
source§impl PartialEq<&(dyn Array + 'static)> for StructArray
impl PartialEq<&(dyn Array + 'static)> for StructArray
Auto Trait Implementations§
impl Freeze for StructArray
impl !RefUnwindSafe for StructArray
impl Send for StructArray
impl Sync for StructArray
impl Unpin for StructArray
impl !UnwindSafe for StructArray
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more