pub struct VortexWriteOptions { /* private fields */ }Expand description
Configure a new writer, which can eventually be used to write an ArrayStream into a sink
that implements VortexWrite.
All write strategies are restricted to the encodings in the session’s enabled editions.
Construct with WriteOptionsSessionExt::write_options for normal use so the writer inherits
the session’s runtime, array registry, and memory configuration.
Implementations§
Source§impl VortexWriteOptions
impl VortexWriteOptions
Sourcepub fn new(session: VortexSession) -> Self
pub fn new(session: VortexSession) -> Self
Create a new VortexWriteOptions with the given session.
Sourcepub fn with_strategy(self, strategy: Arc<dyn LayoutStrategy>) -> Self
pub fn with_strategy(self, strategy: Arc<dyn LayoutStrategy>) -> Self
Replace the default layout strategy with the provided one.
The strategy controls repartitioning, statistics layout, compression, and leaf segment
emission. Use WriteStrategyBuilder when only a small part of the default strategy needs
customization. Replacing the strategy does not change the enabled-edition encoding policy.
Sourcepub fn buffered_bytes_tracker(&self) -> BufferedBytesTracker
pub fn buffered_bytes_tracker(&self) -> BufferedBytesTracker
Returns the tracker accounting for bytes that layout strategies are holding but have not yet emitted.
The tracker is shared with the write these options start, so it can be captured before
calling Self::write and polled while the write runs. Writer::buffered_bytes exposes
the same counter for the push-based API.
Sourcepub fn exclude_dtype(self) -> Self
pub fn exclude_dtype(self) -> Self
Exclude the DType from the Vortex file. You must provide the DType to the reader.
Sourcepub fn with_file_statistics(self, file_statistics: Vec<Stat>) -> Self
pub fn with_file_statistics(self, file_statistics: Vec<Stat>) -> Self
Configure which statistics to compute at the file level.
Pass an empty vector to omit file-level statistics.
Sourcepub fn with_metadata_segment(
self,
key: impl Into<String>,
metadata: impl Into<ByteBuffer>,
) -> Self
pub fn with_metadata_segment( self, key: impl Into<String>, metadata: impl Into<ByteBuffer>, ) -> Self
Add a user-defined metadata segment (keyed, opaque bytes); a repeated key replaces the
previous value. Keys and the segment count are validated against MAX_METADATA_*.
Sourcepub fn with_metadata_segments<I, K, B>(self, metadata: I) -> Self
pub fn with_metadata_segments<I, K, B>(self, metadata: I) -> Self
Add user-defined metadata segments to the file.
If a key already exists, the previous segment for that key is replaced.
Sourcepub fn validate_metadata(&self) -> VortexResult<()>
pub fn validate_metadata(&self) -> VortexResult<()>
Check the configured metadata segments against the MAX_METADATA_* limits.
Self::write performs the same check, but only once the sink is already being written
to. Callers that accept metadata from elsewhere (FFI bindings, for example) can use this to
reject an invalid set before any bytes are produced.
Source§impl VortexWriteOptions
impl VortexWriteOptions
Sourcepub fn blocking<B: BlockingRuntime>(self, runtime: &B) -> BlockingWrite<'_, B>
pub fn blocking<B: BlockingRuntime>(self, runtime: &B) -> BlockingWrite<'_, B>
Drop into the blocking writer API using the given runtime.
The returned adapter drives async writer internals on runtime while accepting ordinary
std::io::Write sinks and ArrayIterator inputs.
Sourcepub async fn write<W: VortexWrite + Unpin, S: ArrayStream + Send + 'static>(
self,
write: W,
stream: S,
) -> VortexResult<WriteSummary>
pub async fn write<W: VortexWrite + Unpin, S: ArrayStream + Send + 'static>( self, write: W, stream: S, ) -> VortexResult<WriteSummary>
Write an ArrayStream as a Vortex file.
Note that buffers are flushed as soon as they are available with no buffering, the caller
is responsible for deciding how to configure buffering on the underlying Write sink.
The set of encodings permitted in the file is snapshotted from the session’s array registry here, so encodings registered after this call are not written.
Sourcepub fn writer<'w, W: VortexWrite + Unpin + 'w>(
self,
write: W,
dtype: DType,
) -> Writer<'w>
pub fn writer<'w, W: VortexWrite + Unpin + 'w>( self, write: W, dtype: DType, ) -> Writer<'w>
Create a push-based Writer that can be used to incrementally write arrays to the file.
Each pushed chunk must have dtype dtype. Call Writer::finish to close the input stream,
flush remaining buffers, and receive the WriteSummary.
Auto Trait Implementations§
impl !RefUnwindSafe for VortexWriteOptions
impl !UnwindSafe for VortexWriteOptions
impl Freeze for VortexWriteOptions
impl Send for VortexWriteOptions
impl Sync for VortexWriteOptions
impl Unpin for VortexWriteOptions
impl UnsafeUnpin for VortexWriteOptions
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.Source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.Source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.Source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.Source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.Source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.Source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.Source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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 moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.Source§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read moreSource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.Source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.