pub struct StreamWriter<W> { /* private fields */ }
Expand description
Writer for an IPC stream
Implementations§
Source§impl<W: Write> StreamWriter<BufWriter<W>>
impl<W: Write> StreamWriter<BufWriter<W>>
Sourcepub fn try_new_buffered(writer: W, schema: &Schema) -> Result<Self, ArrowError>
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>
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 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.
Sourcepub fn try_new_with_options(
writer: W,
schema: &Schema,
write_options: IpcWriteOptions,
) -> Result<Self, ArrowError>
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.
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 get_mut(&mut self) -> &mut W
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.
Sourcepub fn flush(&mut self) -> Result<(), ArrowError>
pub fn flush(&mut self) -> Result<(), ArrowError>
Flush the underlying writer.
Both the BufWriter and the underlying writer are flushed.
Sourcepub fn into_inner(self) -> Result<W, ArrowError>
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);