Struct arrow_ipc::writer::StreamWriter
source · pub struct StreamWriter<W: Write> { /* private fields */ }
Expand description
Writer for an IPC stream
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 to 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 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 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::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>
impl<W: Write> RecordBatchWriter for StreamWriter<W>
source§fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
fn write(&mut self, batch: &RecordBatch) -> Result<(), ArrowError>
Write a single batch to the writer.
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> 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