Struct arrow::array::UnionArray [−][src]
pub struct UnionArray { /* fields omitted */ }
An Array that can represent slots of varying types.
Implementations
impl UnionArray
[src]
impl UnionArray
[src]pub fn new(
type_ids: Buffer,
value_offsets: Option<Buffer>,
child_arrays: Vec<(Field, ArrayRef)>,
bitmap_data: Option<Buffer>
) -> Self
[src]
type_ids: Buffer,
value_offsets: Option<Buffer>,
child_arrays: Vec<(Field, ArrayRef)>,
bitmap_data: Option<Buffer>
) -> Self
Creates a new UnionArray
.
Accepts type ids, child arrays and optionally offsets (for dense unions) to create
a new UnionArray
. This method makes no attempt to validate the data provided by the
caller and assumes that each of the components are correct and consistent with each other.
See try_new
for an alternative that validates the data provided.
Data Consistency
The type_ids
Buffer
should contain i8
values. These values should be greater than
zero and must be less than the number of children provided in child_arrays
. These values
are used to index into the child_arrays
.
The value_offsets
Buffer
is only provided in the case of a dense union, sparse unions
should use None
. If provided the value_offsets
Buffer
should contain i32
values.
These values should be greater than zero and must be less than the length of the overall
array.
In both cases above we use signed integer types to maintain compatibility with other Arrow implementations.
In both of the cases above we are accepting Buffer
’s which are assumed to be representing
i8
and i32
values respectively. Buffer
objects are untyped and no attempt is made
to ensure that the data provided is valid.
pub fn try_new(
type_ids: Buffer,
value_offsets: Option<Buffer>,
child_arrays: Vec<(Field, ArrayRef)>,
bitmap: Option<Buffer>
) -> Result<Self>
[src]
type_ids: Buffer,
value_offsets: Option<Buffer>,
child_arrays: Vec<(Field, ArrayRef)>,
bitmap: Option<Buffer>
) -> Result<Self>
Attempts to create a new UnionArray
and validates the inputs provided.
pub fn child(&self, type_id: i8) -> ArrayRef
[src]
Accesses the child array for type_id
.
Panics
Panics if the type_id
provided is less than zero or greater than the number of types
in the Union
.
pub fn type_id(&self, index: usize) -> i8
[src]
Returns the type_id
for the array slot at index
.
Panics
Panics if index
is greater than the length of the array.
pub fn value_offset(&self, index: usize) -> i32
[src]
Returns the offset into the underlying values array for the array slot at index
.
Panics
Panics if index
is greater than the length of the array.
pub fn value(&self, index: usize) -> ArrayRef
[src]
pub fn type_names(&self) -> Vec<&str>
[src]
Returns the names of the types in the union.
Trait Implementations
impl Array for UnionArray
[src]
impl Array for UnionArray
[src]fn as_any(&self) -> &dyn Any
[src]
fn data(&self) -> &ArrayData
[src]
fn get_buffer_memory_size(&self) -> usize
[src]
Returns the total number of bytes of memory occupied by the buffers owned by this UnionArray.
fn get_array_memory_size(&self) -> usize
[src]
Returns the total number of bytes of memory occupied physically by this UnionArray.
fn data_ref(&self) -> &ArrayData
[src]
fn data_type(&self) -> &DataType
[src]
fn slice(&self, offset: usize, length: usize) -> ArrayRef
[src]
fn len(&self) -> usize
[src]
fn is_empty(&self) -> bool
[src]
fn offset(&self) -> usize
[src]
fn is_null(&self, index: usize) -> bool
[src]
fn is_valid(&self, index: usize) -> bool
[src]
fn null_count(&self) -> usize
[src]
fn to_raw(&self) -> Result<(*const FFI_ArrowArray, *const FFI_ArrowSchema)>
[src]
impl JsonEqual for UnionArray
[src]
impl JsonEqual for UnionArray
[src]Auto Trait Implementations
impl !RefUnwindSafe for UnionArray
impl !RefUnwindSafe for UnionArray
impl Send for UnionArray
impl Send for UnionArray
impl Sync for UnionArray
impl Sync for UnionArray
impl Unpin for UnionArray
impl Unpin for UnionArray
impl !UnwindSafe for UnionArray
impl !UnwindSafe for UnionArray