pub struct ExecutionModeDecider {}
Implementations§
Source§impl ExecutionModeDecider
impl ExecutionModeDecider
Sourcepub fn run_in_local_mode(batch_plan: &BatchPlanRoot) -> bool
pub fn run_in_local_mode(batch_plan: &BatchPlanRoot) -> bool
If the plan should run in local mode, return true; otherwise, return false.
Trait Implementations§
Source§impl BatchPlanVisitor for ExecutionModeDecider
impl BatchPlanVisitor for ExecutionModeDecider
Source§fn visit_batch_seq_scan(&mut self, batch_seq_scan: &BatchSeqScan) -> bool
fn visit_batch_seq_scan(&mut self, batch_seq_scan: &BatchSeqScan) -> bool
Point select, index lookup and two side bound range scan. select * from t where id = 1 select * from t where k = 1 select * from t where id between 1 and 5
Source§fn visit_batch_values(&mut self, _batch_values: &BatchValues) -> bool
fn visit_batch_values(&mut self, _batch_values: &BatchValues) -> bool
Simple value select. select 1
Source§fn visit_batch_limit(&mut self, batch_limit: &BatchLimit) -> bool
fn visit_batch_limit(&mut self, batch_limit: &BatchLimit) -> bool
Limit scan. select * from t limit 1 select * from t order by k limit 1
type Result = bool
type DefaultBehavior = impl DefaultBehavior<<ExecutionModeDecider as BatchPlanVisitor>::Result>
Source§fn default_behavior() -> Self::DefaultBehavior
fn default_behavior() -> Self::DefaultBehavior
The behavior for the default implementations of
visit_xxx
.fn visit_batch(&mut self, plan: PlanRef<Batch>) -> Self::Result
Source§fn visit_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> Self::Result
fn visit_batch_simple_agg(&mut self, plan: &BatchSimpleAgg) -> Self::Result
Visit
BatchSimpleAgg
, the function should visit the inputs.Source§fn visit_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> Self::Result
fn visit_batch_hash_agg(&mut self, plan: &BatchHashAgg) -> Self::Result
Visit
BatchHashAgg
, the function should visit the inputs.Source§fn visit_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> Self::Result
fn visit_batch_sort_agg(&mut self, plan: &BatchSortAgg) -> Self::Result
Visit
BatchSortAgg
, the function should visit the inputs.Source§fn visit_batch_project(&mut self, plan: &BatchProject) -> Self::Result
fn visit_batch_project(&mut self, plan: &BatchProject) -> Self::Result
Visit
BatchProject
, the function should visit the inputs.Source§fn visit_batch_filter(&mut self, plan: &BatchFilter) -> Self::Result
fn visit_batch_filter(&mut self, plan: &BatchFilter) -> Self::Result
Visit
BatchFilter
, the function should visit the inputs.Source§fn visit_batch_insert(&mut self, plan: &BatchInsert) -> Self::Result
fn visit_batch_insert(&mut self, plan: &BatchInsert) -> Self::Result
Visit
BatchInsert
, the function should visit the inputs.Source§fn visit_batch_delete(&mut self, plan: &BatchDelete) -> Self::Result
fn visit_batch_delete(&mut self, plan: &BatchDelete) -> Self::Result
Visit
BatchDelete
, the function should visit the inputs.Source§fn visit_batch_update(&mut self, plan: &BatchUpdate) -> Self::Result
fn visit_batch_update(&mut self, plan: &BatchUpdate) -> Self::Result
Visit
BatchUpdate
, the function should visit the inputs.Source§fn visit_batch_sys_seq_scan(&mut self, plan: &BatchSysSeqScan) -> Self::Result
fn visit_batch_sys_seq_scan(&mut self, plan: &BatchSysSeqScan) -> Self::Result
Visit
BatchSysSeqScan
, the function should visit the inputs.Source§fn visit_batch_log_seq_scan(&mut self, plan: &BatchLogSeqScan) -> Self::Result
fn visit_batch_log_seq_scan(&mut self, plan: &BatchLogSeqScan) -> Self::Result
Visit
BatchLogSeqScan
, the function should visit the inputs.Source§fn visit_batch_hash_join(&mut self, plan: &BatchHashJoin) -> Self::Result
fn visit_batch_hash_join(&mut self, plan: &BatchHashJoin) -> Self::Result
Visit
BatchHashJoin
, the function should visit the inputs.Source§fn visit_batch_nested_loop_join(
&mut self,
plan: &BatchNestedLoopJoin,
) -> Self::Result
fn visit_batch_nested_loop_join( &mut self, plan: &BatchNestedLoopJoin, ) -> Self::Result
Visit
BatchNestedLoopJoin
, the function should visit the inputs.Source§fn visit_batch_sort(&mut self, plan: &BatchSort) -> Self::Result
fn visit_batch_sort(&mut self, plan: &BatchSort) -> Self::Result
Visit
BatchSort
, the function should visit the inputs.Source§fn visit_batch_exchange(&mut self, plan: &BatchExchange) -> Self::Result
fn visit_batch_exchange(&mut self, plan: &BatchExchange) -> Self::Result
Visit
BatchExchange
, the function should visit the inputs.Source§fn visit_batch_top_n(&mut self, plan: &BatchTopN) -> Self::Result
fn visit_batch_top_n(&mut self, plan: &BatchTopN) -> Self::Result
Visit
BatchTopN
, the function should visit the inputs.Source§fn visit_batch_hop_window(&mut self, plan: &BatchHopWindow) -> Self::Result
fn visit_batch_hop_window(&mut self, plan: &BatchHopWindow) -> Self::Result
Visit
BatchHopWindow
, the function should visit the inputs.Source§fn visit_batch_table_function(
&mut self,
plan: &BatchTableFunction,
) -> Self::Result
fn visit_batch_table_function( &mut self, plan: &BatchTableFunction, ) -> Self::Result
Visit
BatchTableFunction
, the function should visit the inputs.Source§fn visit_batch_expand(&mut self, plan: &BatchExpand) -> Self::Result
fn visit_batch_expand(&mut self, plan: &BatchExpand) -> Self::Result
Visit
BatchExpand
, the function should visit the inputs.Source§fn visit_batch_lookup_join(&mut self, plan: &BatchLookupJoin) -> Self::Result
fn visit_batch_lookup_join(&mut self, plan: &BatchLookupJoin) -> Self::Result
Visit
BatchLookupJoin
, the function should visit the inputs.Source§fn visit_batch_project_set(&mut self, plan: &BatchProjectSet) -> Self::Result
fn visit_batch_project_set(&mut self, plan: &BatchProjectSet) -> Self::Result
Visit
BatchProjectSet
, the function should visit the inputs.Source§fn visit_batch_union(&mut self, plan: &BatchUnion) -> Self::Result
fn visit_batch_union(&mut self, plan: &BatchUnion) -> Self::Result
Visit
BatchUnion
, the function should visit the inputs.Source§fn visit_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> Self::Result
fn visit_batch_group_top_n(&mut self, plan: &BatchGroupTopN) -> Self::Result
Visit
BatchGroupTopN
, the function should visit the inputs.Source§fn visit_batch_source(&mut self, plan: &BatchSource) -> Self::Result
fn visit_batch_source(&mut self, plan: &BatchSource) -> Self::Result
Visit
BatchSource
, the function should visit the inputs.Source§fn visit_batch_over_window(&mut self, plan: &BatchOverWindow) -> Self::Result
fn visit_batch_over_window(&mut self, plan: &BatchOverWindow) -> Self::Result
Visit
BatchOverWindow
, the function should visit the inputs.Source§fn visit_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> Self::Result
fn visit_batch_max_one_row(&mut self, plan: &BatchMaxOneRow) -> Self::Result
Visit
BatchMaxOneRow
, the function should visit the inputs.Source§fn visit_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> Self::Result
fn visit_batch_kafka_scan(&mut self, plan: &BatchKafkaScan) -> Self::Result
Visit
BatchKafkaScan
, the function should visit the inputs.Source§fn visit_batch_iceberg_scan(&mut self, plan: &BatchIcebergScan) -> Self::Result
fn visit_batch_iceberg_scan(&mut self, plan: &BatchIcebergScan) -> Self::Result
Visit
BatchIcebergScan
, the function should visit the inputs.Source§fn visit_batch_file_scan(&mut self, plan: &BatchFileScan) -> Self::Result
fn visit_batch_file_scan(&mut self, plan: &BatchFileScan) -> Self::Result
Visit
BatchFileScan
, the function should visit the inputs.Source§fn visit_batch_postgres_query(
&mut self,
plan: &BatchPostgresQuery,
) -> Self::Result
fn visit_batch_postgres_query( &mut self, plan: &BatchPostgresQuery, ) -> Self::Result
Visit
BatchPostgresQuery
, the function should visit the inputs.Source§fn visit_batch_my_sql_query(&mut self, plan: &BatchMySqlQuery) -> Self::Result
fn visit_batch_my_sql_query(&mut self, plan: &BatchMySqlQuery) -> Self::Result
Visit
BatchMySqlQuery
, the function should visit the inputs.Source§impl Clone for ExecutionModeDecider
impl Clone for ExecutionModeDecider
Source§fn clone(&self) -> ExecutionModeDecider
fn clone(&self) -> ExecutionModeDecider
Returns a duplicate of the value. Read more
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ExecutionModeDecider
impl Debug for ExecutionModeDecider
Source§impl Default for ExecutionModeDecider
impl Default for ExecutionModeDecider
Source§fn default() -> ExecutionModeDecider
fn default() -> ExecutionModeDecider
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ExecutionModeDecider
impl RefUnwindSafe for ExecutionModeDecider
impl Send for ExecutionModeDecider
impl Sync for ExecutionModeDecider
impl Unpin for ExecutionModeDecider
impl UnwindSafe for ExecutionModeDecider
Blanket Implementations§
§impl<T> AsAny for T
impl<T> AsAny for T
§fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
fn any_ref(&self) -> &(dyn Any + Send + Sync + 'static)
Obtains a
dyn Any
reference to the object: Read more§fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync>
fn as_any(self: Arc<T>) -> Arc<dyn Any + Send + Sync>
Obtains an
Arc<dyn Any>
reference to the object: Read more§fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
fn into_any(self: Box<T>) -> Box<dyn Any + Send + Sync>
Converts the object to
Box<dyn Any>
: Read more§fn type_name(&self) -> &'static str
fn type_name(&self) -> &'static str
Convenient wrapper for
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<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>
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 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>
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 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>
Wrap the input message
T
in a tonic::Request
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
type Err = Infallible
fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>
Creates a shared type from an unshared type.
§impl<T, U, I> LiftInto<U, I> for Twhere
U: LiftFrom<T, I>,
impl<T, U, I> LiftInto<U, I> for Twhere
U: LiftFrom<T, I>,
Source§impl<M> MetricVecRelabelExt for M
impl<M> MetricVecRelabelExt for M
Source§fn relabel(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level
.Source§fn relabel_n(
self,
metric_level: MetricLevel,
relabel_threshold: MetricLevel,
relabel_num: usize,
) -> RelabeledMetricVec<M>
fn relabel_n( self, metric_level: MetricLevel, relabel_threshold: MetricLevel, relabel_num: usize, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
.Source§fn relabel_debug_1(
self,
relabel_threshold: MetricLevel,
) -> RelabeledMetricVec<M>
fn relabel_debug_1( self, relabel_threshold: MetricLevel, ) -> RelabeledMetricVec<M>
Equivalent to
RelabeledMetricVec::with_metric_level_relabel_n
with metric_level
set to
MetricLevel::Debug
and relabel_num
set to 1.§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Pipes by value. This is generally the method you want to use. Read more
§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,
Borrows
self
and passes that borrow into the pipe function. Read more§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,
Mutably borrows
self
and passes that borrow into the pipe function. Read more§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
§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
§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
Borrows
self
, then passes self.as_ref()
into the pipe function.§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
Mutably borrows
self
, then passes self.as_mut()
into the pipe
function.§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
Borrows
self
, then passes self.deref()
into the pipe function.Source§impl<V> PlanVisitor<Batch> for Vwhere
V: BatchPlanVisitor,
impl<V> PlanVisitor<Batch> for Vwhere
V: BatchPlanVisitor,
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Scope for T
impl<T> Scope for T
§impl<Source> Sculptor<HNil, HNil> for Source
impl<Source> Sculptor<HNil, HNil> for Source
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Immutable access to the
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
Mutable access to the
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
Immutable access to the
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
Mutable access to the
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Immutable access to the
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Mutable access to the
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
Calls
.tap_borrow()
only in debug builds, and is erased in release
builds.§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
Calls
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
Calls
.tap_ref()
only in debug builds, and is erased in release
builds.§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
Calls
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
Calls
.tap_deref()
only in debug builds, and is erased in release
builds.