pub struct SingleMutableCsr { /* private fields */ }Implementations§
Source§impl SingleMutableCsr
impl SingleMutableCsr
pub fn iter(&self, ts: u64) -> SingleMutableCsrIterator<'_> ⓘ
Sourcepub fn iter_all(&self) -> SingleMutableCsrIterator<'_> ⓘ
pub fn iter_all(&self) -> SingleMutableCsrIterator<'_> ⓘ
Iterate over all physically present entries, including tombstoned ones.
Source§impl SingleMutableCsr
impl SingleMutableCsr
Sourcepub fn delete_edge_at_position(
&mut self,
src: u32,
position: EdgePosition,
expected: EdgeId,
ts: u64,
) -> Result<bool, StorageError>
pub fn delete_edge_at_position( &mut self, src: u32, position: EdgePosition, expected: EdgeId, ts: u64, ) -> Result<bool, StorageError>
Delete the single slot at position when it holds expected.
Only the row-local primary slot zero is valid; every other position is stale and refused without touching any slot.
Sourcepub fn revert_delete_at_position(
&mut self,
src: u32,
position: EdgePosition,
expected: EdgeId,
ts: u64,
) -> bool
pub fn revert_delete_at_position( &mut self, src: u32, position: EdgePosition, expected: EdgeId, ts: u64, ) -> bool
Revert the single-slot deletion at position when it holds expected.
Sourcepub fn delete_edge_by_dst_reporting_positioned(
&mut self,
src: u32,
dst: VertexId,
ts: u64,
on_deleted: &mut dyn FnMut(EdgeId, Option<EdgePosition>),
) -> usize
pub fn delete_edge_by_dst_reporting_positioned( &mut self, src: u32, dst: VertexId, ts: u64, on_deleted: &mut dyn FnMut(EdgeId, Option<EdgePosition>), ) -> usize
Delete the single matching entry, reporting its row-local position.
pub fn reclaimable_count(&self, vid: u32, cutoff: u64) -> usize
pub fn vertex_census(&self, vid: u32) -> (usize, usize, usize)
Sourcepub fn vertex_reclaim_probe(&self, vid: u32, cutoff: u64) -> (usize, usize)
pub fn vertex_reclaim_probe(&self, vid: u32, cutoff: u64) -> (usize, usize)
Single-slot reclaim probe: (dead, reclaimable) in one slot read.
pub fn compact_vertex_with_reporting( &mut self, vid: u32, cutoff: u64, on_edge_removed: &mut dyn FnMut(EdgeId, u64), ) -> usize
pub fn compact_with_ts_reporting( &mut self, cutoff: u64, on_edge_removed: &mut dyn FnMut(EdgeId, u64), ) -> usize
pub fn clear(&mut self)
Source§impl SingleMutableCsr
impl SingleMutableCsr
Sourcepub fn dump(&self) -> Vec<u8> ⓘ
pub fn dump(&self) -> Vec<u8> ⓘ
Dump with integer column encoding for neighbor and edge-id columns.
Offsets are trivial for the single-edge layout (slot index equals row), so only neighbor, rank, edge-id and stamp columns go through the column path with a narrow plain fallback.
Sourcepub fn dump_into(&self, out: &mut Vec<u8>)
pub fn dump_into(&self, out: &mut Vec<u8>)
Borrow-based dump into out, byte-identical to dump. The payload
carries a trailing CRC32 trailer verified on load.
Sourcepub fn used_memory_size(&self) -> usize
pub fn used_memory_size(&self) -> usize
Reserved slot memory plus struct overhead.
Per-shape accounting by design: the single-slot layout owns no offset arrays, live sets or overflow maps, so its shard-level total is narrower than the multi-edge layout. Cross-shape comparison belongs at the table layer after the shared authority estimate is added, never at the shard level directly.
Source§impl SingleMutableCsr
impl SingleMutableCsr
pub fn get_edge(&self, src: u32, dst: VertexId, ts: u64) -> Option<Nbr>
Sourcepub fn locate_edge(
&self,
src: u32,
edge_id: EdgeId,
) -> Option<(EdgePosition, Nbr)>
pub fn locate_edge( &self, src: u32, edge_id: EdgeId, ) -> Option<(EdgePosition, Nbr)>
Locate the single slot holding edge_id, if any.
Returns the row-local primary position alongside a copy, including tombstoned slots so delete and revert callers can act on them.
pub fn nbr_at_offset(&self, src: u32, offset: i32) -> Option<Nbr>
pub fn get_edge_physical(&self, src: u32, dst: VertexId) -> Option<Nbr>
Sourcepub fn physical_edges_of(&self, src: u32) -> Vec<Nbr>
pub fn physical_edges_of(&self, src: u32) -> Vec<Nbr>
Test and offline use; production scans use fill_physical_into or
the visitor paths instead of this allocating accessor.
Sourcepub fn fill_physical_into(&self, src: u32, out: &mut Vec<Nbr>)
pub fn fill_physical_into(&self, src: u32, out: &mut Vec<Nbr>)
Fill a caller buffer with the physically stored entry of one slot.
Same content as the allocating accessor above, without the per-vertex allocation. Lets batch scans share one buffer across vertices.
pub fn visit_physical<F>(&self, src: u32, f: F)
Sourcepub fn visit_hot<F>(&self, src: u32, f: F)
pub fn visit_hot<F>(&self, src: u32, f: F)
Visit the single hot half of one vertex without allocating.
Sourcepub fn is_row_sorted(&self, _src: u32) -> bool
pub fn is_row_sorted(&self, _src: u32) -> bool
Single-slot rows hold at most one entry and are trivially ordered.
Sourcepub fn visit_threshold<F>(
&self,
src: u32,
lower: Option<(u32, i64)>,
upper: Option<(u32, i64)>,
f: F,
)
pub fn visit_threshold<F>( &self, src: u32, lower: Option<(u32, i64)>, upper: Option<(u32, i64)>, f: F, )
Threshold visit over at most one live entry.
Sourcepub fn fill_threshold_into(
&self,
src: u32,
lower: Option<(u32, i64)>,
upper: Option<(u32, i64)>,
out: &mut Vec<Nbr>,
)
pub fn fill_threshold_into( &self, src: u32, lower: Option<(u32, i64)>, upper: Option<(u32, i64)>, out: &mut Vec<Nbr>, )
Fill a caller buffer with the same range content as visit_threshold.
pub fn has_physical_entries(&self, vid: u32) -> bool
pub fn primary_contains(&self, src: u32, edge_id: EdgeId) -> bool
Source§impl SingleMutableCsr
impl SingleMutableCsr
pub fn insert_edge( &mut self, src: u32, dst: VertexId, edge_id: EdgeId, _ts: u64, ) -> Result<(), StorageError>
pub fn delete_edge( &mut self, src: u32, edge_id: EdgeId, ts: u64, ) -> Result<bool, StorageError>
Sourcepub fn delete_edge_by_dst_reporting(
&mut self,
src: u32,
dst: VertexId,
ts: u64,
on_deleted: &mut dyn FnMut(EdgeId),
) -> usize
pub fn delete_edge_by_dst_reporting( &mut self, src: u32, dst: VertexId, ts: u64, on_deleted: &mut dyn FnMut(EdgeId), ) -> usize
Delete the single matching live entry for full-match endpoint semantics.
Returns the deleted count (0 or 1) so callers can reconcile.
Reporting variant stamps the slot and hands the id to on_deleted
in the same step, so no second lookup is needed.
Sourcepub fn delete_edge_by_dst(&mut self, src: u32, dst: VertexId, ts: u64) -> usize
pub fn delete_edge_by_dst(&mut self, src: u32, dst: VertexId, ts: u64) -> usize
Delete the single matching live entry for full-match endpoint semantics.
Returns the deleted count (0 or 1) so callers can reconcile.
pub fn revert_delete_by_offset( &mut self, src: u32, offset: i32, ts: u64, ) -> bool
pub fn delete_edge_by_offset( &mut self, src: u32, offset: i32, ts: u64, ) -> Result<bool, StorageError>
pub fn rollback_insert(&mut self, src: u32, edge_id: EdgeId) -> bool
pub fn revert_delete_by_edge_id( &mut self, src: u32, edge_id: EdgeId, ts: u64, ) -> bool
Source§impl SingleMutableCsr
impl SingleMutableCsr
pub fn new() -> SingleMutableCsr
pub fn with_capacity(vertex_capacity: usize) -> SingleMutableCsr
pub fn vertex_capacity(&self) -> usize
pub fn edge_count(&self) -> u64
pub fn resize(&mut self, new_vertex_capacity: usize)
pub fn ensure_vertex_capacity(&mut self, min_capacity: usize)
Trait Implementations§
Source§impl Clone for SingleMutableCsr
impl Clone for SingleMutableCsr
Source§fn clone(&self) -> SingleMutableCsr
fn clone(&self) -> SingleMutableCsr
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl CsrBase for SingleMutableCsr
impl CsrBase for SingleMutableCsr
Source§fn vertex_capacity(&self) -> usize
fn vertex_capacity(&self) -> usize
Send + Sync bounds express single-writer transfer across threads,
not lock-free concurrent writes. Multi-core scaling comes from
shard-level parallelism over NodeGroup shards above this trait;
the CSR lock model itself stays single-writer with no row locks.fn edge_count(&self) -> u64
fn dump(&self) -> Vec<u8> ⓘ
Source§fn dump_into(&self, out: &mut Vec<u8>)
fn dump_into(&self, out: &mut Vec<u8>)
dump into out without an intermediate
owned buffer, so checkpoint writes borrow the live topology instead
of cloning it for serialization.fn load(&mut self, data: &[u8]) -> Result<(), StorageError>
Source§impl Debug for SingleMutableCsr
impl Debug for SingleMutableCsr
Source§impl Default for SingleMutableCsr
impl Default for SingleMutableCsr
Source§fn default() -> SingleMutableCsr
fn default() -> SingleMutableCsr
Source§impl MutableCsrTrait for SingleMutableCsr
impl MutableCsrTrait for SingleMutableCsr
Source§fn insert_edge(
&mut self,
src: u32,
dst: VertexId,
edge_id: EdgeId,
ts: u64,
) -> Result<(), StorageError>
fn insert_edge( &mut self, src: u32, dst: VertexId, edge_id: EdgeId, ts: u64, ) -> Result<(), StorageError>
Source§fn delete_edge(
&mut self,
src: u32,
edge_id: EdgeId,
ts: u64,
) -> Result<bool, StorageError>
fn delete_edge( &mut self, src: u32, edge_id: EdgeId, ts: u64, ) -> Result<bool, StorageError>
Source§fn delete_edge_by_dst(&mut self, src: u32, dst: VertexId, ts: u64) -> usize
fn delete_edge_by_dst(&mut self, src: u32, dst: VertexId, ts: u64) -> usize
Source§fn delete_edge_by_dst_reporting(
&mut self,
src: u32,
dst: VertexId,
ts: u64,
on_deleted: &mut dyn FnMut(EdgeId),
) -> usize
fn delete_edge_by_dst_reporting( &mut self, src: u32, dst: VertexId, ts: u64, on_deleted: &mut dyn FnMut(EdgeId), ) -> usize
Source§fn delete_edge_by_dst_reporting_positioned(
&mut self,
src: u32,
dst: VertexId,
ts: u64,
on_deleted: &mut dyn FnMut(EdgeId, Option<EdgePosition>),
) -> usize
fn delete_edge_by_dst_reporting_positioned( &mut self, src: u32, dst: VertexId, ts: u64, on_deleted: &mut dyn FnMut(EdgeId, Option<EdgePosition>), ) -> usize
Source§fn locate_edge(&self, src: u32, edge_id: EdgeId) -> Option<(EdgePosition, Nbr)>
fn locate_edge(&self, src: u32, edge_id: EdgeId) -> Option<(EdgePosition, Nbr)>
Source§fn delete_edge_at_position(
&mut self,
src: u32,
position: EdgePosition,
expected: EdgeId,
ts: u64,
) -> Result<bool, StorageError>
fn delete_edge_at_position( &mut self, src: u32, position: EdgePosition, expected: EdgeId, ts: u64, ) -> Result<bool, StorageError>
Source§fn revert_delete_at_position(
&mut self,
src: u32,
position: EdgePosition,
expected: EdgeId,
ts: u64,
) -> bool
fn revert_delete_at_position( &mut self, src: u32, position: EdgePosition, expected: EdgeId, ts: u64, ) -> bool
Source§fn delete_edge_by_offset(
&mut self,
src: u32,
offset: i32,
ts: u64,
) -> Result<bool, StorageError>
fn delete_edge_by_offset( &mut self, src: u32, offset: i32, ts: u64, ) -> Result<bool, StorageError>
Source§fn revert_delete_by_offset(&mut self, src: u32, offset: i32, ts: u64) -> bool
fn revert_delete_by_offset(&mut self, src: u32, offset: i32, ts: u64) -> bool
Source§fn nbr_at_offset(&self, src: u32, offset: i32) -> Option<Nbr>
fn nbr_at_offset(&self, src: u32, offset: i32) -> Option<Nbr>
Source§fn get_edge_physical(&self, src: u32, dst: VertexId) -> Option<Nbr>
fn get_edge_physical(&self, src: u32, dst: VertexId) -> Option<Nbr>
Source§fn physical_edges_of(&self, src: u32) -> Vec<Nbr>
fn physical_edges_of(&self, src: u32) -> Vec<Nbr>
Source§fn fill_physical_into(&self, src: u32, out: &mut Vec<Nbr>)
fn fill_physical_into(&self, src: u32, out: &mut Vec<Nbr>)
Source§fn has_physical_entries(&self, vid: u32) -> bool
fn has_physical_entries(&self, vid: u32) -> bool
Source§fn primary_contains(&self, src_vid: u32, edge_id: EdgeId) -> bool
fn primary_contains(&self, src_vid: u32, edge_id: EdgeId) -> bool
edge_id.Source§fn rollback_insert(&mut self, src_vid: u32, edge_id: EdgeId) -> bool
fn rollback_insert(&mut self, src_vid: u32, edge_id: EdgeId) -> bool
Source§fn revert_delete_by_edge_id(
&mut self,
src_vid: u32,
edge_id: EdgeId,
ts: u64,
) -> bool
fn revert_delete_by_edge_id( &mut self, src_vid: u32, edge_id: EdgeId, ts: u64, ) -> bool
ts. Read moreSource§fn get_edge(&self, src: u32, dst: VertexId, ts: u64) -> Option<Nbr>
fn get_edge(&self, src: u32, dst: VertexId, ts: u64) -> Option<Nbr>
Source§fn edges_of(&self, src: u32, ts: u64) -> Vec<Nbr>
fn edges_of(&self, src: u32, ts: u64) -> Vec<Nbr>
Source§fn reclaimable_count(&self, vid: u32, cutoff: u64) -> usize
fn reclaimable_count(&self, vid: u32, cutoff: u64) -> usize
cutoff. Read moreSource§fn vertex_census(&self, vid: u32) -> (usize, usize, usize)
fn vertex_census(&self, vid: u32) -> (usize, usize, usize)
(live, dead, capacity). Read moreSource§fn vertex_reclaim_probe(&self, vid: u32, cutoff: u64) -> (usize, usize)
fn vertex_reclaim_probe(&self, vid: u32, cutoff: u64) -> (usize, usize)
(dead, reclaimable). Read moreSource§fn compact_vertex_with_reporting(
&mut self,
vid: u32,
cutoff: u64,
on_edge_removed: &mut dyn FnMut(EdgeId, u64),
) -> usize
fn compact_vertex_with_reporting( &mut self, vid: u32, cutoff: u64, on_edge_removed: &mut dyn FnMut(EdgeId, u64), ) -> usize
cutoff and tightening live entries without touching other rows. Read moreSource§fn used_memory_size(&self) -> usize
fn used_memory_size(&self) -> usize
Source§fn vertex_needs_compact(&self, vid: u32, cutoff: u64) -> bool
fn vertex_needs_compact(&self, vid: u32, cutoff: u64) -> bool
cutoff.Source§fn row_gap(&self, _vid: u32) -> usize
fn row_gap(&self, _vid: u32) -> usize
Source§fn row_density(&self, _vid: u32) -> f32
fn row_density(&self, _vid: u32) -> f32
Source§fn rebalance_row(&mut self, _vid: u32) -> bool
fn rebalance_row(&mut self, _vid: u32) -> bool
Auto Trait Implementations§
impl Freeze for SingleMutableCsr
impl RefUnwindSafe for SingleMutableCsr
impl Send for SingleMutableCsr
impl Sync for SingleMutableCsr
impl Unpin for SingleMutableCsr
impl UnsafeUnpin for SingleMutableCsr
impl UnwindSafe for SingleMutableCsr
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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.