pub struct RunStreamOptions {Show 16 fields
pub state_store: Option<Arc<dyn StateStore>>,
pub state_key: Option<String>,
pub pipeline_name: Option<String>,
pub row: Option<String>,
pub run_id: Option<String>,
pub dlq: Option<DlqConfig>,
pub quality: Option<Arc<CompiledQuality>>,
pub contract: Option<Arc<CompiledContract>>,
pub masking: Option<Arc<CompiledMasking>>,
pub adaptive: Option<AdaptiveBatchConfig>,
pub cancel: Option<CancellationToken>,
pub delivery: DeliveryMode,
pub start_seq: u64,
pub replay: Option<ReplayGuarantee>,
pub resilience: Option<ResiliencePolicy>,
pub schema_drift: Option<SchemaDriftPolicy>,
}Fields§
§state_store: Option<Arc<dyn StateStore>>§state_key: Option<String>§pipeline_name: Option<String>§row: Option<String>§run_id: Option<String>§dlq: Option<DlqConfig>§quality: Option<Arc<CompiledQuality>>quality only.contract: Option<Arc<CompiledContract>>contract only.Compiled data contract (issue #204). The pass runs per page after the quality pass and before the schema-drift pass.
masking: Option<Arc<CompiledMasking>>masking only.Compiled masking policy (issue #206). The pass runs per page first — before quality/contract/drift and every sink write — so PII never reaches a sink, the DLQ, or a lineage sample unmasked.
adaptive: Option<AdaptiveBatchConfig>Adaptive batch-size controller config; None (or enabled = false)
leaves the per-page write path unchanged.
cancel: Option<CancellationToken>Cooperative cancellation. When set and cancelled mid-run, the streaming loop stops polling new pages, flushes the sinks (so a buffered sink like Parquet writes its footer / completes its upload rather than orphaning the file), and returns the partial result. Without this, a dropped run future loses everything written-but-unflushed (#146 H16).
delivery: DeliveryModeDelivery guarantee. AtLeastOnce (default) leaves the write path
unchanged. ExactlyOnce enables the resume/skip + atomic-token path.
start_seq: u64Resume sequence read from the (unwrapped) exactly-once state value.
Ignored unless delivery == ExactlyOnce. Defaults to 0.
replay: Option<ReplayGuarantee>The source’s replay capability, when the caller knows it.
Some(NonDeterministic) steers an ExactlyOnce run away from the
atomic-watermark skip path (whose correctness depends on positional
replay) and onto the keyed-upsert mechanism when the sink is configured
for it. None (default) trusts the caller — today’s behaviour for
library users driving run_stream directly. Pipeline::run always
sets it from Source::replay_guarantee().
resilience: Option<ResiliencePolicy>Optional resilience policy (retry/backoff/circuit-breaker/poison).
schema_drift: Option<SchemaDriftPolicy>Compiled schema-drift policy (issue #194). None → no drift handling.
Implementations§
Source§impl RunStreamOptions
impl RunStreamOptions
pub fn new() -> RunStreamOptions
pub fn with_state( self, store: Arc<dyn StateStore>, key: impl Into<String>, ) -> RunStreamOptions
pub fn with_name(self, name: impl Into<String>) -> RunStreamOptions
pub fn with_row(self, row: impl Into<String>) -> RunStreamOptions
pub fn with_run_id(self, id: impl Into<String>) -> RunStreamOptions
pub fn with_dlq(self, dlq: DlqConfig) -> RunStreamOptions
Sourcepub fn with_cancel(self, cancel: CancellationToken) -> RunStreamOptions
pub fn with_cancel(self, cancel: CancellationToken) -> RunStreamOptions
Attach a cancellation token for cooperative, flush-completing cancel.
Sourcepub fn with_adaptive(self, cfg: AdaptiveBatchConfig) -> RunStreamOptions
pub fn with_adaptive(self, cfg: AdaptiveBatchConfig) -> RunStreamOptions
Attach an adaptive batch-size controller config.
pub fn with_quality(self, quality: Arc<CompiledQuality>) -> RunStreamOptions
quality only.Sourcepub fn with_contract(self, contract: Arc<CompiledContract>) -> RunStreamOptions
Available on crate feature contract only.
pub fn with_contract(self, contract: Arc<CompiledContract>) -> RunStreamOptions
contract only.Attach a compiled data contract. The pass runs per page after the quality pass and before the schema-drift pass.
Sourcepub fn with_masking(self, masking: Arc<CompiledMasking>) -> RunStreamOptions
Available on crate feature masking only.
pub fn with_masking(self, masking: Arc<CompiledMasking>) -> RunStreamOptions
masking only.Attach a compiled masking policy. The pass runs per page first — before quality/contract/drift and every sink write.
Sourcepub fn with_delivery(self, mode: DeliveryMode) -> RunStreamOptions
pub fn with_delivery(self, mode: DeliveryMode) -> RunStreamOptions
Set the delivery mode.
Sourcepub fn with_replay_guarantee(self, replay: ReplayGuarantee) -> RunStreamOptions
pub fn with_replay_guarantee(self, replay: ReplayGuarantee) -> RunStreamOptions
Set the resume sequence (exactly-once). Normally derived by
Pipeline::run from the unwrapped state value.
Declare the source’s replay capability (see the replay field).
pub fn with_start_seq(self, seq: u64) -> RunStreamOptions
Sourcepub fn with_resilience(self, policy: ResiliencePolicy) -> RunStreamOptions
pub fn with_resilience(self, policy: ResiliencePolicy) -> RunStreamOptions
Attach a resilience policy to the run.
Sourcepub fn with_schema_drift(self, policy: SchemaDriftPolicy) -> RunStreamOptions
pub fn with_schema_drift(self, policy: SchemaDriftPolicy) -> RunStreamOptions
Attach a compiled schema-drift policy. The pass runs per page after the quality pass and before the sink write.
Trait Implementations§
Source§impl Clone for RunStreamOptions
impl Clone for RunStreamOptions
Source§fn clone(&self) -> RunStreamOptions
fn clone(&self) -> RunStreamOptions
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for RunStreamOptions
impl Default for RunStreamOptions
Source§fn default() -> RunStreamOptions
fn default() -> RunStreamOptions
Auto Trait Implementations§
impl !RefUnwindSafe for RunStreamOptions
impl !UnwindSafe for RunStreamOptions
impl Freeze for RunStreamOptions
impl Send for RunStreamOptions
impl Sync for RunStreamOptions
impl Unpin for RunStreamOptions
impl UnsafeUnpin for RunStreamOptions
Blanket Implementations§
Source§impl<T> AsAny for T
impl<T> AsAny for T
Source§fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
fn any_ref(&self) -> &(dyn Any + Sync + Send + 'static)
dyn Any reference to the object: Read moreSource§fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ
fn as_any(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ
Arc<dyn Any> reference to the object: Read moreSource§fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
fn into_any(self: Box<T>) -> Box<dyn Any + Sync + Send>
Box<dyn Any>: Read moreSource§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
std::any::type_name, since Any does not provide it and
Any::type_id is useless as a debugging aid (its Debug is just a mess of hex digits).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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for T
impl<T> Downcast for T
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> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Requestimpl<T> MaybeSend for Twhere
T: Send,
Source§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
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt 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.