Struct arrow_ipc::writer::StreamWriter
source · pub struct StreamWriter<W: Write> { /* private fields */ }
Implementations§
source§impl<W: Write> StreamWriter<W>
impl<W: Write> StreamWriter<W>
sourcepub fn try_new(writer: W, schema: &Schema) -> Result<Self, ArrowError>
pub fn try_new(writer: W, schema: &Schema) -> Result<Self, ArrowError>
Try create a new writer, with the schema written as part of the header
pub fn try_new_with_options( writer: W, schema: &Schema, write_options: IpcWriteOptions ) -> Result<Self, ArrowError>
sourcepub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
pub fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
Write a record batch to the stream
sourcepub fn finish(&mut self) -> Result<(), ArrowError>
pub fn finish(&mut self) -> Result<(), ArrowError>
Write continuation bytes, and mark the stream as done
sourcepub fn into_inner(self) -> Result<W, ArrowError>
pub fn into_inner(self) -> Result<W, ArrowError>
Unwraps the BufWriter housed in StreamWriter.writer, returning the underlying writer
The buffer is flushed and the StreamWriter is finished before returning the writer.
Errors
An [‘Err’] may be returned if an error occurs while finishing the StreamWriter or while flushing the buffer.
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::new(vec![]);
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);