Skip to main content

WriteConfig

Struct WriteConfig 

Source
pub struct WriteConfig {
    pub(crate) out_path: Option<PathBuf>,
    pub(crate) format: OutFormat,
    pub(crate) overwrite: bool,
    pub(crate) compression: Option<ParquetCompression>,
    pub(crate) compression_level: Option<u32>,
}
Expand description

Output configuration for writing Arrow data.

Captures the output file path, format, compression settings, and overwrite behavior. Created separately from ReadStatPath, which handles only input path validation.

Fields are private and validated by the builder methods; read them via the accessor methods. This prevents constructing a config that bypasses path, extension, and compression-level validation.

Fields§

§out_path: Option<PathBuf>

Optional output file path.

§format: OutFormat

Output format (defaults to CSV).

§overwrite: bool

Whether to overwrite an existing output file.

§compression: Option<ParquetCompression>

Optional Parquet compression algorithm.

§compression_level: Option<u32>

Optional Parquet compression level.

Implementations§

Source§

impl WriteConfig

Source

pub fn from_output(path: impl Into<PathBuf>) -> Result<Self, ReadStatError>

Infers the format from an output path and returns a validated config.

§Errors

Returns ReadStatError if the path has an unknown extension or fails normal output-path validation.

Source

pub const fn new(format: OutFormat) -> Self

Starts a validated configuration for format. CSV defaults to stdout; other formats require output before writer creation.

Source

pub fn output(self, path: impl Into<PathBuf>) -> Result<Self, ReadStatError>

Sets and validates the output path.

Source

pub const fn overwrite(self, overwrite: bool) -> Self

Controls atomic publication when the writer is successfully finished. When false, publication fails rather than replacing a destination that appeared while the output was being written.

Source

pub fn compression( self, codec: ParquetCompression, level: Option<u32>, ) -> Result<Self, ReadStatError>

Sets and validates Parquet compression.

Source

pub(crate) fn validate(&self) -> Result<(), ReadStatError>

Source

pub fn out_path(&self) -> Option<&Path>

The validated output path, or None to write CSV to stdout.

Source

pub const fn format(&self) -> OutFormat

The output format.

Source

pub const fn is_overwrite(&self) -> bool

Whether an existing output file may be overwritten.

Source

pub const fn compression_codec(&self) -> Option<ParquetCompression>

The configured Parquet compression codec, if any.

Source

pub const fn compression_level(&self) -> Option<u32>

The configured Parquet compression level, if any.

Source

fn validate_out_extension( path: &Path, format: OutFormat, ) -> Result<Option<PathBuf>, ReadStatError>

Validates the output file extension matches the format.

Source

fn validate_out_path( path: Option<PathBuf>, ) -> Result<Option<PathBuf>, ReadStatError>

Validates the output path exists and handles overwrite logic.

Source

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

Validates compression level is valid for the given compression algorithm.

Trait Implementations§

Source§

impl Clone for WriteConfig

Source§

fn clone(&self) -> WriteConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WriteConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

§

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,