Struct re_viewer::external::arrow2::array::StructArray
pub struct StructArray {
data_type: DataType,
values: Vec<Box<dyn Array>>,
validity: Option<Bitmap>,
}
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);
Fields§
§data_type: DataType
§values: Vec<Box<dyn Array>>
§validity: Option<Bitmap>
Implementations§
§impl<'a> StructArray
impl<'a> StructArray
pub 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>>
pub fn values_iter(&'a self) -> StructValueIter<'a>
pub fn values_iter(&'a self) -> StructValueIter<'a>
Returns an iterator of Box<dyn Array>
§impl StructArray
impl StructArray
pub fn try_new(
data_type: DataType,
values: Vec<Box<dyn Array>>,
validity: Option<Bitmap>
) -> Result<StructArray, Error>
pub fn try_new( data_type: DataType, values: Vec<Box<dyn Array>>, validity: Option<Bitmap> ) -> Result<StructArray, 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
pub fn new(
data_type: DataType,
values: Vec<Box<dyn Array>>,
validity: Option<Bitmap>
) -> StructArray
pub fn new( data_type: DataType, values: Vec<Box<dyn Array>>, validity: Option<Bitmap> ) -> StructArray
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
pub fn new_empty(data_type: DataType) -> StructArray
pub fn new_empty(data_type: DataType) -> StructArray
Creates an empty StructArray
.
pub fn new_null(data_type: DataType, length: usize) -> StructArray
pub fn new_null(data_type: DataType, length: usize) -> StructArray
Creates a null StructArray
of length length
.
§impl StructArray
impl StructArray
pub 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.
pub 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.
pub 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()
.
pub fn sliced(self, offset: usize, length: usize) -> StructArray
pub fn sliced(self, offset: usize, length: usize) -> StructArray
pub unsafe fn sliced_unchecked(
self,
offset: usize,
length: usize
) -> StructArray
pub unsafe fn sliced_unchecked( self, offset: usize, length: usize ) -> StructArray
pub fn with_validity(self, validity: Option<Bitmap>) -> StructArray
pub fn with_validity(self, validity: Option<Bitmap>) -> StructArray
pub fn set_validity(&mut self, validity: Option<Bitmap>)
pub fn set_validity(&mut self, validity: Option<Bitmap>)
pub fn boxed(self) -> Box<dyn Array>
pub fn boxed(self) -> Box<dyn Array>
Boxes this array into a Box<dyn Array>
.
pub fn arced(self) -> Arc<dyn Array>
pub fn arced(self) -> Arc<dyn Array>
Arcs this array into a std::sync::Arc<dyn Array>
.
§impl StructArray
impl StructArray
pub fn values(&self) -> &[Box<dyn Array>]
pub fn values(&self) -> &[Box<dyn Array>]
Returns the values of this StructArray
.
pub fn fields(&self) -> &[Field]
pub fn fields(&self) -> &[Field]
Returns the fields of this StructArray
.
§impl StructArray
impl StructArray
pub fn get_fields(data_type: &DataType) -> &[Field]
pub fn get_fields(data_type: &DataType) -> &[Field]
Returns the fields the DataType::Struct
.
Trait Implementations§
§impl Arrow2Arrow for StructArray
impl Arrow2Arrow for StructArray
§impl Array for StructArray
impl Array for StructArray
§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Any
, which enables downcasting to concrete types.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Any
, which enables mutable downcasting to concrete types.§fn len(&self) -> usize
fn len(&self) -> usize
Array
. Every array has a length corresponding to the number of
elements (slots).§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.§fn null_count(&self) -> usize
fn null_count(&self) -> usize
§unsafe fn is_null_unchecked(&self, i: usize) -> bool
unsafe fn is_null_unchecked(&self, i: usize) -> bool
i
is null. Read more§impl Clone for StructArray
impl Clone for StructArray
§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 more§impl Debug for StructArray
impl Debug for StructArray
§impl<'a> From<GrowableStruct<'a>> for StructArray
impl<'a> From<GrowableStruct<'a>> for StructArray
§fn from(val: GrowableStruct<'a>) -> StructArray
fn from(val: GrowableStruct<'a>) -> StructArray
§impl From<MutableStructArray> for StructArray
impl From<MutableStructArray> for StructArray
§fn from(other: MutableStructArray) -> StructArray
fn from(other: MutableStructArray) -> StructArray
§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>>
§fn into_iter(self) -> <&'a StructArray as IntoIterator>::IntoIter
fn into_iter(self) -> <&'a StructArray as IntoIterator>::IntoIter
§impl PartialEq<&(dyn Array + 'static)> for StructArray
impl PartialEq<&(dyn Array + 'static)> for StructArray
§impl PartialEq for StructArray
impl PartialEq for StructArray
§fn eq(&self, other: &StructArray) -> bool
fn eq(&self, other: &StructArray) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl SizeBytes for StructArray
impl SizeBytes for StructArray
source§fn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
self
on the heap, in bytes.source§fn total_size_bytes(&self) -> u64
fn total_size_bytes(&self) -> u64
self
in bytes, accounting for both stack and heap space.source§fn stack_size_bytes(&self) -> u64
fn stack_size_bytes(&self) -> u64
self
on the stack, in bytes. Read moreAuto 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> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request