Struct FFI_ArrowArrayStream
#[repr(C)]pub struct FFI_ArrowArrayStream {
get_schema: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream, *mut FFI_ArrowSchema) -> i32>,
get_next: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream, *mut FFI_ArrowArray) -> i32>,
get_last_error: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream) -> *const i8>,
release: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>,
private_data: *mut c_void,
}Expand description
ABI-compatible struct for ArrayStream from C Stream Interface
See https://arrow.apache.org/docs/format/CStreamInterface.html#structure-definitions
This was created by bindgen
Fields§
§get_schema: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream, *mut FFI_ArrowSchema) -> i32>§get_next: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream, *mut FFI_ArrowArray) -> i32>§get_last_error: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream) -> *const i8>§release: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>§private_data: *mut c_voidImplementations§
§impl FFI_ArrowArrayStream
impl FFI_ArrowArrayStream
pub fn new(
batch_reader: Box<dyn RecordBatchReader<Item = Result<RecordBatch, ArrowError>> + Send>,
) -> FFI_ArrowArrayStream
pub fn new( batch_reader: Box<dyn RecordBatchReader<Item = Result<RecordBatch, ArrowError>> + Send>, ) -> FFI_ArrowArrayStream
Creates a new FFI_ArrowArrayStream.
pub unsafe fn from_raw(
raw_stream: *mut FFI_ArrowArrayStream,
) -> FFI_ArrowArrayStream
pub unsafe fn from_raw( raw_stream: *mut FFI_ArrowArrayStream, ) -> FFI_ArrowArrayStream
Takes ownership of the pointed to FFI_ArrowArrayStream
This acts to move the data out of raw_stream, setting the release callback to NULL
§Safety
raw_streammust be valid for reads and writesraw_streammust be properly alignedraw_streammust point to a properly initialized value ofFFI_ArrowArrayStream
pub fn empty() -> FFI_ArrowArrayStream
pub fn empty() -> FFI_ArrowArrayStream
Creates a new empty FFI_ArrowArrayStream. Used to import from the C Stream Interface.
pub fn release(&self) -> Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>
pub fn release(&self) -> Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>
Returns the producer-provided release callback, if any.
pub fn private_data(&self) -> *mut c_void
pub fn private_data(&self) -> *mut c_void
Returns the opaque producer-provided private data pointer.
pub unsafe fn set_release(
&mut self,
release: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>,
) -> Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>
pub unsafe fn set_release( &mut self, release: Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>, ) -> Option<unsafe extern "C" fn(*mut FFI_ArrowArrayStream)>
Replaces the release callback, returning the previous one.
Lets a consumer wrap release: save the old callback, install its own, and chain back on drop. See https://github.com/apache/arrow-rs/issues/9771.
§Safety
Drop calls this callback with a pointer to self. The new callback
must correctly release this stream (usually by chaining to the returned
one) and must match the FFI_ArrowArrayStream::private_data it reads.
A wrong callback is undefined behavior on drop.
pub unsafe fn set_private_data(
&mut self,
private_data: *mut c_void,
) -> *mut c_void
pub unsafe fn set_private_data( &mut self, private_data: *mut c_void, ) -> *mut c_void
Replaces the private data pointer, returning the previous one.
§Safety
The old pointer is returned without being freed; the caller owns it from
here. The new pointer must match what the current
FFI_ArrowArrayStream::release callback expects.