pub struct StreamChunk {
ops: Arc<[Op]>,
data: DataChunk,
}
Expand description
StreamChunk
is used to pass data over the streaming pathway.
Fields§
§ops: Arc<[Op]>
§data: DataChunk
Implementations§
source§impl StreamChunk
impl StreamChunk
sourcepub fn new(
ops: impl Into<Arc<[Op]>>,
columns: Vec<Arc<ArrayImpl>>,
) -> StreamChunk
pub fn new( ops: impl Into<Arc<[Op]>>, columns: Vec<Arc<ArrayImpl>>, ) -> StreamChunk
Create a new StreamChunk
with given ops and columns.
sourcepub fn with_visibility(
ops: impl Into<Arc<[Op]>>,
columns: Vec<Arc<ArrayImpl>>,
visibility: Bitmap,
) -> StreamChunk
pub fn with_visibility( ops: impl Into<Arc<[Op]>>, columns: Vec<Arc<ArrayImpl>>, visibility: Bitmap, ) -> StreamChunk
Create a new StreamChunk
with given ops, columns and visibility.
sourcepub fn from_rows(
rows: &[(Op, impl Row)],
data_types: &[DataType],
) -> StreamChunk
pub fn from_rows( rows: &[(Op, impl Row)], data_types: &[DataType], ) -> StreamChunk
Build a StreamChunk
from rows.
Panics if the rows
is empty.
Should prefer using StreamChunkBuilder
instead to avoid unnecessary
allocation of rows.
sourcepub fn data_chunk(&self) -> &DataChunk
pub fn data_chunk(&self) -> &DataChunk
Get the reference of the underlying data chunk.
sourcepub fn compact(self) -> StreamChunk
pub fn compact(self) -> StreamChunk
compact the StreamChunk
with its visibility map
sourcepub fn split(&self, size: usize) -> Vec<StreamChunk>
pub fn split(&self, size: usize) -> Vec<StreamChunk>
Split the StreamChunk
into multiple chunks with the given size at most.
When the total cardinality of all the chunks is not evenly divided by the size
,
the last new chunk will be the remainder.
For consecutive UpdateDelete
and UpdateInsert
, they will be kept in one chunk.
As a result, some chunks may have size + 1
rows.
pub fn into_parts(self) -> (DataChunk, Arc<[Op]>)
pub fn from_parts( ops: impl Into<Arc<[Op]>>, data_chunk: DataChunk, ) -> StreamChunk
pub fn into_inner(self) -> (Arc<[Op]>, Vec<Arc<ArrayImpl>>, Bitmap)
pub fn to_protobuf(&self) -> StreamChunk
pub fn from_protobuf(prost: &StreamChunk) -> Result<StreamChunk, ArrayError>
pub fn ops(&self) -> &[Op]
sourcepub fn to_pretty(&self) -> impl Display
pub fn to_pretty(&self) -> impl Display
Returns a table-like text representation of the StreamChunk
.
sourcepub fn to_pretty_with_schema(&self, schema: &Schema) -> impl Display
pub fn to_pretty_with_schema(&self, schema: &Schema) -> impl Display
Returns a table-like text representation of the StreamChunk
with a header of column names
from the given schema
.
sourcepub fn project(&self, indices: &[usize]) -> StreamChunk
pub fn project(&self, indices: &[usize]) -> StreamChunk
Reorder (and possibly remove) columns.
e.g. if indices
is [2, 1, 0]
, and the chunk contains column [a, b, c]
, then the output
will be [c, b, a]
. If indices
is [2, 0], then the output will be [c, a]
.
If the input mapping is identity mapping, no reorder will be performed.
sourcepub fn eliminate_adjacent_noop_update(self) -> StreamChunk
pub fn eliminate_adjacent_noop_update(self) -> StreamChunk
Remove the adjacent delete-insert if their row value are the same.
sourcepub fn project_with_vis(&self, indices: &[usize], vis: Bitmap) -> StreamChunk
pub fn project_with_vis(&self, indices: &[usize], vis: Bitmap) -> StreamChunk
Reorder columns and set visibility.
sourcepub fn clone_with_vis(&self, vis: Bitmap) -> StreamChunk
pub fn clone_with_vis(&self, vis: Bitmap) -> StreamChunk
Clone the StreamChunk
with a new visibility.
source§impl StreamChunk
impl StreamChunk
sourcepub fn records(&self) -> StreamChunkRefIter<'_>
pub fn records(&self) -> StreamChunkRefIter<'_>
Return an iterator on stream records of this stream chunk.
sourcepub fn rows(&self) -> impl Iterator<Item = (Op, RowRef<'_>)>
pub fn rows(&self) -> impl Iterator<Item = (Op, RowRef<'_>)>
Return an iterator on rows of this stream chunk.
Should consider using StreamChunk::records
if possible.
sourcepub fn rows_in(
&self,
range: Range<usize>,
) -> impl Iterator<Item = (Op, RowRef<'_>)>
pub fn rows_in( &self, range: Range<usize>, ) -> impl Iterator<Item = (Op, RowRef<'_>)>
Return an iterator on rows of this stream chunk in a range.
sourcepub fn row_at(&self, pos: usize) -> (Op, RowRef<'_>, bool)
pub fn row_at(&self, pos: usize) -> (Op, RowRef<'_>, bool)
Random access a row at pos
. Return the op, data and whether the row is visible.
pub fn rows_with_holes(&self) -> impl Iterator<Item = Option<(Op, RowRef<'_>)>>
Methods from Deref<Target = DataChunk>§
sourcepub fn next_visible_row_idx(&self, row_idx: usize) -> Option<usize>
pub fn next_visible_row_idx(&self, row_idx: usize) -> Option<usize>
Return the next visible row index on or after row_idx
.
pub fn dimension(&self) -> usize
sourcepub fn cardinality(&self) -> usize
pub fn cardinality(&self) -> usize
cardinality
returns the number of visible tuples
pub fn selectivity(&self) -> f64
pub fn with_visibility(&self, visibility: impl Into<Bitmap>) -> DataChunk
pub fn visibility(&self) -> &Bitmap
pub fn set_visibility(&mut self, visibility: Bitmap)
pub fn is_compacted(&self) -> bool
pub fn column_at(&self, idx: usize) -> &Arc<ArrayImpl>
pub fn columns(&self) -> &[Arc<ArrayImpl>]
sourcepub fn data_types(&self) -> Vec<DataType>
pub fn data_types(&self) -> Vec<DataType>
Returns the data types of all columns.
sourcepub fn split_column_at(&self, idx: usize) -> (DataChunk, DataChunk)
pub fn split_column_at(&self, idx: usize) -> (DataChunk, DataChunk)
pub fn to_protobuf(&self) -> DataChunk
sourcepub fn compact_cow(&self) -> Cow<'_, DataChunk>
pub fn compact_cow(&self) -> Cow<'_, DataChunk>
Convert the chunk to compact format.
If the chunk is not compacted, return a new compacted chunk, otherwise return a reference to self.
sourcepub fn get_hash_values<H>(
&self,
column_idxes: &[usize],
hasher_builder: H,
) -> Vec<HashCode<H>>where
H: BuildHasher,
pub fn get_hash_values<H>(
&self,
column_idxes: &[usize],
hasher_builder: H,
) -> Vec<HashCode<H>>where
H: BuildHasher,
Compute hash values for each row. The number of the returning HashCodes
is self.capacity()
.
When skip_invisible_row
is true, the HashCode
for the invisible rows is arbitrary.
sourcepub fn row_at(&self, pos: usize) -> (RowRef<'_>, bool)
pub fn row_at(&self, pos: usize) -> (RowRef<'_>, bool)
Random access a tuple in a data chunk. Return in a row format.
§Arguments
pos
- Index of look up tupleRowRef
- Reference of data tuple- bool - whether this tuple is visible
sourcepub fn row_at_unchecked_vis(&self, pos: usize) -> RowRef<'_>
pub fn row_at_unchecked_vis(&self, pos: usize) -> RowRef<'_>
Random access a tuple in a data chunk. Return in a row format. Note that this function do not return whether the row is visible.
§Arguments
pos
- Index of look up tuple
sourcepub fn to_pretty(&self) -> impl Display
pub fn to_pretty(&self) -> impl Display
Returns a table-like text representation of the DataChunk
.
sourcepub fn keep_columns(&self, column_indices: &[usize]) -> DataChunk
pub fn keep_columns(&self, column_indices: &[usize]) -> DataChunk
Keep the specified columns and set the rest elements to null.
§Example
i i i i i i
1 2 3 --> keep_columns([1]) --> . 2 .
4 5 6 . 5 .
sourcepub fn project(&self, indices: &[usize]) -> DataChunk
pub fn project(&self, indices: &[usize]) -> DataChunk
Reorder (and possibly remove) columns.
e.g. if indices
is [2, 1, 0]
, and the chunk contains column [a, b, c]
, then the output
will be [c, b, a]
. If indices
is [2, 0], then the output will be [c, a]
.
If the input mapping is identity mapping, no reorder will be performed.
sourcepub fn project_with_vis(
&self,
indices: &[usize],
visibility: Bitmap,
) -> DataChunk
pub fn project_with_vis( &self, indices: &[usize], visibility: Bitmap, ) -> DataChunk
Reorder columns and set visibility.
sourcepub fn reorder_rows(&self, indexes: &[usize]) -> DataChunk
pub fn reorder_rows(&self, indexes: &[usize]) -> DataChunk
Reorder rows by indexes.
sourcepub fn serialize(&self) -> Vec<Bytes>
pub fn serialize(&self) -> Vec<Bytes>
Serialize each row into value encoding bytes.
The returned vector’s size is self.capacity()
and for the invisible row will give a empty
bytes.
sourcepub fn serialize_with(&self, serializer: &impl ValueRowSerializer) -> Vec<Bytes>
pub fn serialize_with(&self, serializer: &impl ValueRowSerializer) -> Vec<Bytes>
Serialize each row into bytes with given serializer.
This is similar to serialize
but it uses a custom serializer. Prefer serialize
if
possible since it might be more efficient due to columnar operations.
sourcepub fn estimate_value_encoding_size(&self, column_indices: &[usize]) -> usize
pub fn estimate_value_encoding_size(&self, column_indices: &[usize]) -> usize
Estimate size of hash keys. Their indices in a row are indicated by column_indices
.
Size here refers to the number of u8s required to store the serialized datum.
sourcepub fn rows(&self) -> DataChunkRefIter<'_>
pub fn rows(&self) -> DataChunkRefIter<'_>
Get an iterator for visible rows.
sourcepub fn rows_in(&self, range: Range<usize>) -> DataChunkRefIter<'_>
pub fn rows_in(&self, range: Range<usize>) -> DataChunkRefIter<'_>
Get an iterator for visible rows in range.
sourcepub fn rows_with_holes(&self) -> DataChunkRefIterWithHoles<'_>
pub fn rows_with_holes(&self) -> DataChunkRefIterWithHoles<'_>
Get an iterator for all rows in the chunk, and a None
represents an invisible row.
Trait Implementations§
source§impl Clone for StreamChunk
impl Clone for StreamChunk
source§fn clone(&self) -> StreamChunk
fn clone(&self) -> StreamChunk
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for StreamChunk
impl Debug for StreamChunk
source§impl Default for StreamChunk
impl Default for StreamChunk
source§fn default() -> StreamChunk
fn default() -> StreamChunk
Create a 0-row-0-col StreamChunk
. Only used in some existing tests.
This is NOT the same as an empty chunk, which has 0 rows but with
columns aligned with executor schema.
source§impl Deref for StreamChunk
impl Deref for StreamChunk
source§impl DerefMut for StreamChunk
impl DerefMut for StreamChunk
source§impl EstimateSize for StreamChunk
impl EstimateSize for StreamChunk
source§fn estimated_heap_size(&self) -> usize
fn estimated_heap_size(&self) -> usize
source§fn estimated_size(&self) -> usizewhere
Self: Sized,
fn estimated_size(&self) -> usizewhere
Self: Sized,
estimated_heap_size
and the size of Self
.source§impl From<DataChunk> for StreamChunk
impl From<DataChunk> for StreamChunk
StreamChunk
can be created from DataChunk
with all operations set to Insert
.
source§fn from(data: DataChunk) -> StreamChunk
fn from(data: DataChunk) -> StreamChunk
source§impl From<StreamChunk> for Message
impl From<StreamChunk> for Message
source§fn from(chunk: StreamChunk) -> Self
fn from(chunk: StreamChunk) -> Self
source§impl From<StreamChunkMut> for StreamChunk
impl From<StreamChunkMut> for StreamChunk
source§fn from(c: StreamChunkMut) -> StreamChunk
fn from(c: StreamChunkMut) -> StreamChunk
source§impl PartialEq for StreamChunk
impl PartialEq for StreamChunk
source§impl StreamChunkTestExt for StreamChunk
impl StreamChunkTestExt for StreamChunk
source§fn from_pretty(s: &str) -> StreamChunk
fn from_pretty(s: &str) -> StreamChunk
source§fn concat(chunks: Vec<StreamChunk>) -> StreamChunk
fn concat(chunks: Vec<StreamChunk>) -> StreamChunk
StreamChunk
into one. Read moresource§fn sort_rows(self) -> StreamChunk
fn sort_rows(self) -> StreamChunk
source§fn gen_stream_chunks(
num_of_chunks: usize,
chunk_size: usize,
data_types: &[DataType],
varchar_properties: &VarcharProperty,
) -> Vec<StreamChunk>
fn gen_stream_chunks( num_of_chunks: usize, chunk_size: usize, data_types: &[DataType], varchar_properties: &VarcharProperty, ) -> Vec<StreamChunk>
num_of_chunks
data chunks with type data_types
,
where each data chunk has cardinality of chunk_size
.
TODO(kwannoel): Generate different types of op, different vis.fn gen_stream_chunks_inner( num_of_chunks: usize, chunk_size: usize, data_types: &[DataType], varchar_properties: &VarcharProperty, visibility_percent: f64, inserts_percent: f64, ) -> Vec<StreamChunk>
impl StructuralPartialEq for StreamChunk
Auto Trait Implementations§
impl Freeze for StreamChunk
impl RefUnwindSafe for StreamChunk
impl Send for StreamChunk
impl Sync for StreamChunk
impl Unpin for StreamChunk
impl UnwindSafe for StreamChunk
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§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>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<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>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
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)
&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)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§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,
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,
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,
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,
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,
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,
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,
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,
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,
§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> ⓘ
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::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>
§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>
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>
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>
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,
§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 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,
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
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
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
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable 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
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
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
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
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
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
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
.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
.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
.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
.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
.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
.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
.tap_deref()
only in debug builds, and is erased in release
builds.