Struct arrow_ipc::writer::IpcDataGenerator
source · pub struct IpcDataGenerator {}
Expand description
Handles low level details of encoding Array
and Schema
into the
Arrow IPC Format.
Example:
// Create a record batch
let batch = RecordBatch::try_from_iter(vec![
("col2", Arc::new(UInt64Array::from_iter([10, 23, 33])) as _)
]).unwrap();
// Error of dictionary ids are replaced.
let error_on_replacement = true;
let options = IpcWriteOptions::default();
let mut dictionary_tracker = DictionaryTracker::new(error_on_replacement);
// encode the batch into zero or more encoded dictionaries
// and the data for the actual array.
let data_gen = IpcDataGenerator {};
let (encoded_dictionaries, encoded_message) = data_gen
.encoded_batch(&batch, &mut dictionary_tracker, &options)
.unwrap();
Implementations§
source§impl IpcDataGenerator
impl IpcDataGenerator
pub fn schema_to_bytes( &self, schema: &Schema, write_options: &IpcWriteOptions ) -> EncodedData
sourcepub fn encoded_batch(
&self,
batch: &RecordBatch,
dictionary_tracker: &mut DictionaryTracker,
write_options: &IpcWriteOptions
) -> Result<(Vec<EncodedData>, EncodedData), ArrowError>
pub fn encoded_batch( &self, batch: &RecordBatch, dictionary_tracker: &mut DictionaryTracker, write_options: &IpcWriteOptions ) -> Result<(Vec<EncodedData>, EncodedData), ArrowError>
Encodes a batch to a number of EncodedData items (dictionary batches + the record batch).
The DictionaryTracker keeps track of dictionaries with new dict_id
s (so they are only sent once)
Make sure the DictionaryTracker is initialized at the start of the stream.
Trait Implementations§
source§impl Debug for IpcDataGenerator
impl Debug for IpcDataGenerator
source§impl Default for IpcDataGenerator
impl Default for IpcDataGenerator
source§fn default() -> IpcDataGenerator
fn default() -> IpcDataGenerator
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl RefUnwindSafe for IpcDataGenerator
impl Send for IpcDataGenerator
impl Sync for IpcDataGenerator
impl Unpin for IpcDataGenerator
impl UnwindSafe for IpcDataGenerator
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
Mutably borrows from an owned value. Read more