pub struct FixpointExec { /* private fields */ }Expand description
DataFusion ExecutionPlan that drives semi-naive fixpoint iteration.
Has no physical children: clause bodies are re-planned from logical plans
on each iteration (same pattern as RecursiveCTEExec and GraphApplyExec).
Implementations§
Source§impl FixpointExec
impl FixpointExec
Sourcepub fn new(
rules: Vec<FixpointRulePlan>,
max_iterations: usize,
timeout: Duration,
graph_ctx: Arc<GraphExecutionContext>,
session_ctx: Arc<RwLock<SessionContext>>,
storage: Arc<StorageManager>,
schema_info: Arc<UniSchema>,
params: HashMap<String, Value>,
derived_scan_registry: Arc<DerivedScanRegistry>,
output_schema: SchemaRef,
max_derived_bytes: usize,
derivation_tracker: Option<Arc<ProvenanceStore>>,
iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>,
strict_probability_domain: bool,
probability_epsilon: f64,
exact_probability: bool,
max_bdd_variables: usize,
warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>,
approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>,
top_k_proofs: usize,
timeout_flag: Arc<AtomicU8>,
) -> Self
👎Deprecated: use new_with_semiring_classifiers_and_cache (or the lighter new_with_semiring_and_classifiers / new_with_semiring) — this legacy ctor defaults the semiring to AddMultProb and ships no classifier registry, which the Phase B+ runtime needs explicitly. To be removed after C0 Stage 2.
pub fn new( rules: Vec<FixpointRulePlan>, max_iterations: usize, timeout: Duration, graph_ctx: Arc<GraphExecutionContext>, session_ctx: Arc<RwLock<SessionContext>>, storage: Arc<StorageManager>, schema_info: Arc<UniSchema>, params: HashMap<String, Value>, derived_scan_registry: Arc<DerivedScanRegistry>, output_schema: SchemaRef, max_derived_bytes: usize, derivation_tracker: Option<Arc<ProvenanceStore>>, iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>, strict_probability_domain: bool, probability_epsilon: f64, exact_probability: bool, max_bdd_variables: usize, warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>, approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>, top_k_proofs: usize, timeout_flag: Arc<AtomicU8>, ) -> Self
use new_with_semiring_classifiers_and_cache (or the lighter new_with_semiring_and_classifiers / new_with_semiring) — this legacy ctor defaults the semiring to AddMultProb and ships no classifier registry, which the Phase B+ runtime needs explicitly. To be removed after C0 Stage 2.
Create a new FixpointExec.
Sourcepub fn new_with_semiring(
rules: Vec<FixpointRulePlan>,
max_iterations: usize,
timeout: Duration,
graph_ctx: Arc<GraphExecutionContext>,
session_ctx: Arc<RwLock<SessionContext>>,
storage: Arc<StorageManager>,
schema_info: Arc<UniSchema>,
params: HashMap<String, Value>,
derived_scan_registry: Arc<DerivedScanRegistry>,
output_schema: SchemaRef,
max_derived_bytes: usize,
derivation_tracker: Option<Arc<ProvenanceStore>>,
iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>,
strict_probability_domain: bool,
probability_epsilon: f64,
exact_probability: bool,
max_bdd_variables: usize,
warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>,
approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>,
top_k_proofs: usize,
timeout_flag: Arc<AtomicU8>,
semiring_kind: SemiringKind,
) -> Self
pub fn new_with_semiring( rules: Vec<FixpointRulePlan>, max_iterations: usize, timeout: Duration, graph_ctx: Arc<GraphExecutionContext>, session_ctx: Arc<RwLock<SessionContext>>, storage: Arc<StorageManager>, schema_info: Arc<UniSchema>, params: HashMap<String, Value>, derived_scan_registry: Arc<DerivedScanRegistry>, output_schema: SchemaRef, max_derived_bytes: usize, derivation_tracker: Option<Arc<ProvenanceStore>>, iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>, strict_probability_domain: bool, probability_epsilon: f64, exact_probability: bool, max_bdd_variables: usize, warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>, approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>, top_k_proofs: usize, timeout_flag: Arc<AtomicU8>, semiring_kind: SemiringKind, ) -> Self
Variant accepting an explicit SemiringKind. Empty classifier
registry; for the full variant call
FixpointExec::new_with_semiring_and_classifiers.
Sourcepub fn new_with_semiring_and_classifiers(
rules: Vec<FixpointRulePlan>,
max_iterations: usize,
timeout: Duration,
graph_ctx: Arc<GraphExecutionContext>,
session_ctx: Arc<RwLock<SessionContext>>,
storage: Arc<StorageManager>,
schema_info: Arc<UniSchema>,
params: HashMap<String, Value>,
derived_scan_registry: Arc<DerivedScanRegistry>,
output_schema: SchemaRef,
max_derived_bytes: usize,
derivation_tracker: Option<Arc<ProvenanceStore>>,
iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>,
strict_probability_domain: bool,
probability_epsilon: f64,
exact_probability: bool,
max_bdd_variables: usize,
warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>,
approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>,
top_k_proofs: usize,
timeout_flag: Arc<AtomicU8>,
semiring_kind: SemiringKind,
classifier_registry: Arc<ClassifierRegistry>,
) -> Self
pub fn new_with_semiring_and_classifiers( rules: Vec<FixpointRulePlan>, max_iterations: usize, timeout: Duration, graph_ctx: Arc<GraphExecutionContext>, session_ctx: Arc<RwLock<SessionContext>>, storage: Arc<StorageManager>, schema_info: Arc<UniSchema>, params: HashMap<String, Value>, derived_scan_registry: Arc<DerivedScanRegistry>, output_schema: SchemaRef, max_derived_bytes: usize, derivation_tracker: Option<Arc<ProvenanceStore>>, iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>, strict_probability_domain: bool, probability_epsilon: f64, exact_probability: bool, max_bdd_variables: usize, warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>, approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>, top_k_proofs: usize, timeout_flag: Arc<AtomicU8>, semiring_kind: SemiringKind, classifier_registry: Arc<ClassifierRegistry>, ) -> Self
Phase B Slice 3 entry: accepts both the semiring kind and the
runtime classifier registry. The planner uses this when the
program contains CREATE MODEL declarations.
Sourcepub fn new_with_semiring_classifiers_and_cache(
rules: Vec<FixpointRulePlan>,
max_iterations: usize,
timeout: Duration,
graph_ctx: Arc<GraphExecutionContext>,
session_ctx: Arc<RwLock<SessionContext>>,
storage: Arc<StorageManager>,
schema_info: Arc<UniSchema>,
params: HashMap<String, Value>,
derived_scan_registry: Arc<DerivedScanRegistry>,
output_schema: SchemaRef,
max_derived_bytes: usize,
derivation_tracker: Option<Arc<ProvenanceStore>>,
iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>,
strict_probability_domain: bool,
probability_epsilon: f64,
exact_probability: bool,
max_bdd_variables: usize,
warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>,
approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>,
top_k_proofs: usize,
timeout_flag: Arc<AtomicU8>,
semiring_kind: SemiringKind,
classifier_registry: Arc<ClassifierRegistry>,
classifier_cache: Option<Arc<ModelInvocationCache>>,
classifier_provenance_store: Option<Arc<NeuralProvenanceStore>>,
) -> Self
pub fn new_with_semiring_classifiers_and_cache( rules: Vec<FixpointRulePlan>, max_iterations: usize, timeout: Duration, graph_ctx: Arc<GraphExecutionContext>, session_ctx: Arc<RwLock<SessionContext>>, storage: Arc<StorageManager>, schema_info: Arc<UniSchema>, params: HashMap<String, Value>, derived_scan_registry: Arc<DerivedScanRegistry>, output_schema: SchemaRef, max_derived_bytes: usize, derivation_tracker: Option<Arc<ProvenanceStore>>, iteration_counts: Arc<StdRwLock<HashMap<String, usize>>>, strict_probability_domain: bool, probability_epsilon: f64, exact_probability: bool, max_bdd_variables: usize, warnings_slot: Arc<StdRwLock<Vec<RuntimeWarning>>>, approximate_slot: Arc<StdRwLock<HashMap<String, Vec<String>>>>, top_k_proofs: usize, timeout_flag: Arc<AtomicU8>, semiring_kind: SemiringKind, classifier_registry: Arc<ClassifierRegistry>, classifier_cache: Option<Arc<ModelInvocationCache>>, classifier_provenance_store: Option<Arc<NeuralProvenanceStore>>, ) -> Self
Phase B follow-up: full constructor accepting an optional
memoization cache. Existing callers default to None (no cache);
the impl_locy.rs entry passes the user’s config.classifier_cache.
Trait Implementations§
Source§impl Debug for FixpointExec
impl Debug for FixpointExec
Source§impl DisplayAs for FixpointExec
impl DisplayAs for FixpointExec
Source§impl ExecutionPlan for FixpointExec
impl ExecutionPlan for FixpointExec
Source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Any so that it can be
downcast to a specific implementation.Source§fn properties(&self) -> &Arc<PlanProperties> ⓘ
fn properties(&self) -> &Arc<PlanProperties> ⓘ
ExecutionPlan, such as output
ordering(s), partitioning information etc. Read moreSource§fn children(&self) -> Vec<&Arc<dyn ExecutionPlan>>
fn children(&self) -> Vec<&Arc<dyn ExecutionPlan>>
ExecutionPlans that act as inputs to this plan.
The returned list will be empty for leaf nodes such as scans, will contain
a single value for unary nodes, or two values for binary nodes (such as
joins).Source§fn with_new_children(
self: Arc<Self>,
children: Vec<Arc<dyn ExecutionPlan>>,
) -> DFResult<Arc<dyn ExecutionPlan>>
fn with_new_children( self: Arc<Self>, children: Vec<Arc<dyn ExecutionPlan>>, ) -> DFResult<Arc<dyn ExecutionPlan>>
ExecutionPlan where all existing children were replaced
by the children, in orderSource§fn execute(
&self,
partition: usize,
_context: Arc<TaskContext>,
) -> DFResult<SendableRecordBatchStream>
fn execute( &self, partition: usize, _context: Arc<TaskContext>, ) -> DFResult<SendableRecordBatchStream>
Source§fn metrics(&self) -> Option<MetricsSet>
fn metrics(&self) -> Option<MetricsSet>
Metrics for this
ExecutionPlan. If no Metrics are available, return None. Read moreSource§fn static_name() -> &'static strwhere
Self: Sized,
fn static_name() -> &'static strwhere
Self: Sized,
name but can be called without an instance.Source§fn check_invariants(&self, check: InvariantLevel) -> Result<(), DataFusionError>
fn check_invariants(&self, check: InvariantLevel) -> Result<(), DataFusionError>
Source§fn required_input_distribution(&self) -> Vec<Distribution>
fn required_input_distribution(&self) -> Vec<Distribution>
ExecutionPlan, By default it’s [Distribution::UnspecifiedDistribution] for each child,Source§fn required_input_ordering(&self) -> Vec<Option<OrderingRequirements>>
fn required_input_ordering(&self) -> Vec<Option<OrderingRequirements>>
ExecutionPlan. Read moreSource§fn maintains_input_order(&self) -> Vec<bool>
fn maintains_input_order(&self) -> Vec<bool>
false if this ExecutionPlan’s implementation may reorder
rows within or between partitions. Read moreSource§fn benefits_from_input_partitioning(&self) -> Vec<bool>
fn benefits_from_input_partitioning(&self) -> Vec<bool>
ExecutionPlan benefits from increased
parallelization at its input for each child. Read moreSource§fn reset_state(
self: Arc<Self>,
) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
fn reset_state( self: Arc<Self>, ) -> Result<Arc<dyn ExecutionPlan>, DataFusionError>
ExecutionPlan. Read moreSource§fn repartitioned(
&self,
_target_partitions: usize,
_config: &ConfigOptions,
) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
fn repartitioned( &self, _target_partitions: usize, _config: &ConfigOptions, ) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
ExecutionPlan to
produce target_partitions partitions. Read moreSource§fn partition_statistics(
&self,
partition: Option<usize>,
) -> Result<Statistics, DataFusionError>
fn partition_statistics( &self, partition: Option<usize>, ) -> Result<Statistics, DataFusionError>
ExecutionPlan node.
If statistics are not available, should return Statistics::new_unknown
(the default), not an error.
If partition is None, it returns statistics for the entire plan.Source§fn supports_limit_pushdown(&self) -> bool
fn supports_limit_pushdown(&self) -> bool
Source§fn with_fetch(&self, _limit: Option<usize>) -> Option<Arc<dyn ExecutionPlan>>
fn with_fetch(&self, _limit: Option<usize>) -> Option<Arc<dyn ExecutionPlan>>
ExecutionPlan node, if it supports
fetch limits. Returns None otherwise.Source§fn fetch(&self) -> Option<usize>
fn fetch(&self) -> Option<usize>
None means there is no fetch.Source§fn cardinality_effect(&self) -> CardinalityEffect
fn cardinality_effect(&self) -> CardinalityEffect
Source§fn try_swapping_with_projection(
&self,
_projection: &ProjectionExec,
) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
fn try_swapping_with_projection( &self, _projection: &ProjectionExec, ) -> Result<Option<Arc<dyn ExecutionPlan>>, DataFusionError>
ExecutionPlan. Read moreSource§fn gather_filters_for_pushdown(
&self,
_phase: FilterPushdownPhase,
parent_filters: Vec<Arc<dyn PhysicalExpr>>,
_config: &ConfigOptions,
) -> Result<FilterDescription, DataFusionError>
fn gather_filters_for_pushdown( &self, _phase: FilterPushdownPhase, parent_filters: Vec<Arc<dyn PhysicalExpr>>, _config: &ConfigOptions, ) -> Result<FilterDescription, DataFusionError>
ExecutionPlan::gather_filters_for_pushdown: Read moreSource§fn handle_child_pushdown_result(
&self,
_phase: FilterPushdownPhase,
child_pushdown_result: ChildPushdownResult,
_config: &ConfigOptions,
) -> Result<FilterPushdownPropagation<Arc<dyn ExecutionPlan>>, DataFusionError>
fn handle_child_pushdown_result( &self, _phase: FilterPushdownPhase, child_pushdown_result: ChildPushdownResult, _config: &ConfigOptions, ) -> Result<FilterPushdownPropagation<Arc<dyn ExecutionPlan>>, DataFusionError>
Source§fn with_new_state(
&self,
_state: Arc<dyn Any + Send + Sync>,
) -> Option<Arc<dyn ExecutionPlan>>
fn with_new_state( &self, _state: Arc<dyn Any + Send + Sync>, ) -> Option<Arc<dyn ExecutionPlan>>
Source§fn try_pushdown_sort(
&self,
_order: &[PhysicalSortExpr],
) -> Result<SortOrderPushdownResult<Arc<dyn ExecutionPlan>>, DataFusionError>
fn try_pushdown_sort( &self, _order: &[PhysicalSortExpr], ) -> Result<SortOrderPushdownResult<Arc<dyn ExecutionPlan>>, DataFusionError>
Source§fn with_preserve_order(
&self,
_preserve_order: bool,
) -> Option<Arc<dyn ExecutionPlan>>
fn with_preserve_order( &self, _preserve_order: bool, ) -> Option<Arc<dyn ExecutionPlan>>
ExecutionPlan that is aware of order-sensitivity. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for FixpointExec
impl !UnwindSafe for FixpointExec
impl Freeze for FixpointExec
impl Send for FixpointExec
impl Sync for FixpointExec
impl Unpin for FixpointExec
impl UnsafeUnpin for FixpointExec
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
impl<T> ErasedDestructor for Twhere
T: 'static,
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
impl<T> MaybeSend for Twhere
T: Send,
impl<T> MaybeSend for Twhere
T: Send,
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.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.impl<T> PluginState for T
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,
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.