Struct arrow::ffi::ArrowArray [−][src]
pub struct ArrowArray { /* fields omitted */ }
Expand description
Struct used to move an Array from and to the C Data Interface. Its main responsibility is to expose functionality that requires both FFI_ArrowArray and FFI_ArrowSchema.
This struct has two main paths:
Import from the C Data Interface
- ArrowArray::empty to allocate memory to be filled by an external call
- ArrowArray::try_from_raw to consume two non-null allocated pointers
Export to the C Data Interface
- ArrowArray::try_new to create a new ArrowArray from Rust-specific information
- ArrowArray::into_raw to expose two pointers for FFI_ArrowArray and FFI_ArrowSchema.
Safety
Whoever creates this struct is responsible for releasing their resources. Specifically, consumers must call ArrowArray::into_raw and take ownership of the individual pointers, calling FFI_ArrowArray::release and FFI_ArrowSchema::release accordingly.
Furthermore, this struct assumes that the incoming data agrees with the C data interface.
Implementations
impl ArrowArray
[src]
impl ArrowArray
[src]pub unsafe fn try_new(data: ArrayData) -> Result<Self>
[src]
pub unsafe fn try_new(data: ArrayData) -> Result<Self>
[src]creates a new ArrowArray
. This is used to export to the C Data Interface.
Safety
See safety of ArrowArray
pub unsafe fn try_from_raw(
array: *const FFI_ArrowArray,
schema: *const FFI_ArrowSchema
) -> Result<Self>
[src]
pub unsafe fn try_from_raw(
array: *const FFI_ArrowArray,
schema: *const FFI_ArrowSchema
) -> Result<Self>
[src]creates a new ArrowArray from two pointers. Used to import from the C Data Interface.
Safety
See safety of ArrowArray
Error
Errors if any of the pointers is null
pub unsafe fn empty() -> Self
[src]
pub unsafe fn empty() -> Self
[src]creates a new empty ArrowArray. Used to import from the C Data Interface.
Safety
See safety of ArrowArray
pub fn into_raw(
this: ArrowArray
) -> (*const FFI_ArrowArray, *const FFI_ArrowSchema)
[src]
pub fn into_raw(
this: ArrowArray
) -> (*const FFI_ArrowArray, *const FFI_ArrowSchema)
[src]exports ArrowArray to the C Data Interface
Trait Implementations
impl ArrowArrayRef for ArrowArray
[src]
impl ArrowArrayRef for ArrowArray
[src]fn array(&self) -> &FFI_ArrowArray
[src]
fn schema(&self) -> &FFI_ArrowSchema
[src]
fn owner(&self) -> &Arc<FFI_ArrowArray>
[src]
fn to_data(&self) -> Result<ArrayData>
[src]
fn buffers(&self) -> Result<Vec<Buffer>>
[src]
fn buffers(&self) -> Result<Vec<Buffer>>
[src]returns all buffers, as organized by Rust (i.e. null buffer is skipped)
fn buffer_len(&self, i: usize) -> Result<usize>
[src]
fn buffer_len(&self, i: usize) -> Result<usize>
[src]Returns the length, in bytes, of the buffer i
(indexed according to the C data interface)
fn null_bit_buffer(&self) -> Option<Buffer>
[src]
fn null_bit_buffer(&self) -> Option<Buffer>
[src]returns the null bit buffer. Rust implementation uses a buffer that is not part of the array of buffers. The C Data interface’s null buffer is part of the array of buffers. Read more
fn child(&self, index: usize) -> ArrowArrayChild<'_>
[src]
impl Debug for ArrowArray
[src]
impl Debug for ArrowArray
[src]impl TryFrom<ArrayData> for ArrowArray
[src]
impl TryFrom<ArrayData> for ArrowArray
[src]impl TryFrom<ArrowArray> for ArrayData
[src]
impl TryFrom<ArrowArray> for ArrayData
[src]type Error = ArrowError
type Error = ArrowError
The type returned in the event of a conversion error.
fn try_from(value: ArrowArray) -> Result<Self>
[src]
fn try_from(value: ArrowArray) -> Result<Self>
[src]Performs the conversion.
Auto Trait Implementations
impl RefUnwindSafe for ArrowArray
impl !Send for ArrowArray
impl !Sync for ArrowArray
impl Unpin for ArrowArray
impl UnwindSafe for ArrowArray
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,