arrow_ipc::writer

Struct StreamWriter

Source
pub struct StreamWriter<W> {
    writer: W,
    write_options: IpcWriteOptions,
    finished: bool,
    dictionary_tracker: DictionaryTracker,
    data_gen: IpcDataGenerator,
}
Expand description

Writer for an IPC stream

Fields§

§writer: W

The object to write to

§write_options: IpcWriteOptions

IPC write options

§finished: bool

Whether the writer footer has been written, and the writer is finished

§dictionary_tracker: DictionaryTracker

Keeps track of dictionaries that have been written

§data_gen: IpcDataGenerator

Implementations§

Source§

impl<W: Write> StreamWriter<BufWriter<W>>

Source

pub fn try_new_buffered(writer: W, schema: &Schema) -> Result<Self, ArrowError>

Try to create a new stream writer with the writer wrapped in a BufWriter.

See StreamWriter::try_new for an unbuffered version.

Source§

impl<W: Write> StreamWriter<W>

Source

pub fn try_new(writer: W, schema: &Schema) -> Result<Self, ArrowError>

Try to create a new writer, with the schema written as part of the header.

Note that there is no internal buffering. See also StreamWriter::try_new_buffered.

§Errors

An ‘Err’ may be returned if writing the header to the writer fails.

Source

pub fn try_new_with_options( writer: W, schema: &Schema, write_options: IpcWriteOptions, ) -> Result<Self, ArrowError>

Try to create a new writer with IpcWriteOptions.

§Errors

An ‘Err’ may be returned if writing the header to the writer fails.

Source

pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>

Write a record batch to the stream

Source

pub fn finish(&mut self) -> Result<(), ArrowError>

Write continuation bytes, and mark the stream as done

Source

pub fn get_ref(&self) -> &W

Gets a reference to the underlying writer.

Source

pub fn get_mut(&mut self) -> &mut W

Gets a mutable reference to the underlying writer.

It is inadvisable to directly write to the underlying writer.

Source

pub fn flush(&mut self) -> Result<(), ArrowError>

Flush the underlying writer.

Both the BufWriter and the underlying writer are flushed.

Source

pub fn into_inner(self) -> Result<W, ArrowError>

Unwraps the the underlying writer.

The writer is flushed and the StreamWriter is finished before returning.

§Errors

An ‘Err’ may be returned if an error occurs while finishing the StreamWriter or while flushing the writer.

§Example
// The result we expect from an empty schema
let expected = vec![
    255, 255, 255, 255,  48,   0,   0,   0,
     16,   0,   0,   0,   0,   0,  10,   0,
     12,   0,  10,   0,   9,   0,   4,   0,
     10,   0,   0,   0,  16,   0,   0,   0,
      0,   1,   4,   0,   8,   0,   8,   0,
      0,   0,   4,   0,   8,   0,   0,   0,
      4,   0,   0,   0,   0,   0,   0,   0,
    255, 255, 255, 255,   0,   0,   0,   0
];

let schema = Schema::empty();
let buffer: Vec<u8> = Vec::new();
let options = IpcWriteOptions::try_new(8, false, MetadataVersion::V5)?;
let stream_writer = StreamWriter::try_new_with_options(buffer, &schema, options)?;

assert_eq!(stream_writer.into_inner()?, expected);

Trait Implementations§

Source§

impl<W: Write> RecordBatchWriter for StreamWriter<W>

Source§

fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>

Write a single batch to the writer.
Source§

fn close(self) -> Result<(), ArrowError>

Write footer or termination data, then mark the writer as done.

Auto Trait Implementations§

§

impl<W> Freeze for StreamWriter<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for StreamWriter<W>
where W: RefUnwindSafe,

§

impl<W> Send for StreamWriter<W>
where W: Send,

§

impl<W> Sync for StreamWriter<W>
where W: Sync,

§

impl<W> Unpin for StreamWriter<W>
where W: Unpin,

§

impl<W> UnwindSafe for StreamWriter<W>
where W: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,