Skip to main content

ReadStatWriter

Struct ReadStatWriter 

Source
pub struct ReadStatWriter {
    pub(crate) wtr: Option<ReadStatWriterFormat>,
    pub(crate) wrote_header: bool,
    pub(crate) wrote_start: bool,
    config: WriteConfig,
    schema: SchemaRef,
    rows_written: usize,
    staging_path: Option<PathBuf>,
}
Expand description

Manages writing Arrow [RecordBatch] data to the configured output format.

Supports streaming writes across multiple batches. The writer is created lazily on the first call to write and finalized via finish.

Fields§

§wtr: Option<ReadStatWriterFormat>

The format-specific writer, created on first write.

§wrote_header: bool

Whether the CSV header row has been written.

§wrote_start: bool

Whether any data has been written (controls file creation vs. append).

§config: WriteConfig§schema: SchemaRef§rows_written: usize§staging_path: Option<PathBuf>

Implementations§

Source§

impl ReadStatWriter

Source

pub fn new( config: WriteConfig, schema: SchemaRef, ) -> Result<Self, ReadStatError>

Creates a new ReadStatWriter with no active writer.

Source

fn open_output(&mut self, wc: &WriteConfig) -> Result<File, ReadStatError>

Opens a sibling staging file. Called exactly once per output; successful finalization publishes it to the configured destination.

Source

fn resolve_compression( compression: Option<ParquetCompression>, compression_level: Option<u32>, ) -> Result<ParquetCompressionCodec, ReadStatError>

Source

pub fn finish(self) -> Result<usize, ReadStatError>

Finalizes the writer, flushing and closing the underlying format writer.

Returns the total number of successfully written rows. Consuming the writer makes finalization a one-shot operation. The library does not print anything; callers own user-facing summary output.

§Errors

Returns an error if the underlying writer fails to flush or close, or if the output format is not enabled.

Source

fn publish(&mut self) -> Result<usize, ReadStatError>

Source

fn flush_buffered(&mut self) -> Result<(), ReadStatError>

Flushes the buffered file writer for formats (CSV, NDJSON) whose underlying BufWriter would otherwise flush silently in Drop.

Source

fn finish_feather(&mut self) -> Result<(), ReadStatError>

Source

fn finish_parquet(&mut self) -> Result<(), ReadStatError>

Source

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

Writes a single batch of data in the format determined by wc.

Handles writer initialization on first call and CSV header writing.

§Errors

Returns an error if the output file cannot be opened, writing fails, or the output format is not enabled.

Source

fn write_data_to_csv( &mut self, batch: &RecordBatch, wc: &WriteConfig, ) -> Result<(), ReadStatError>

Source

fn write_data_to_feather( &mut self, batch: &RecordBatch, wc: &WriteConfig, ) -> Result<(), ReadStatError>

Source

fn write_data_to_ndjson( &mut self, batch: &RecordBatch, wc: &WriteConfig, ) -> Result<(), ReadStatError>

Source

fn write_data_to_parquet( &mut self, batch: &RecordBatch, wc: &WriteConfig, ) -> Result<(), ReadStatError>

Source

fn write_data_to_stdout( &mut self, batch: &RecordBatch, ) -> Result<(), ReadStatError>

Source

fn write_header_to_stdout(&mut self) -> Result<(), ReadStatError>

Trait Implementations§

Source§

impl Drop for ReadStatWriter

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,