pub struct EntityDb {
pub data_source: Option<LogSource>,
pub estimated_application_overhead_bytes: Option<u64>,
/* private fields */
}Expand description
An in-memory database built from a stream of LogMsges.
NOTE: all mutation is to be done via public functions!
Fields§
§data_source: Option<LogSource>§estimated_application_overhead_bytes: Option<u64>How much RAM the whole application uses beyond the raw physical chunks in this recording.
This is estimated by the viewer after a GC pass, when there is only one recording loaded. Includes primary and secondary indices, (purged) caches, fonts, icons, and other overhead.
Implementations§
Source§impl EntityDb
impl EntityDb
Sourcepub fn new(store_id: StoreId) -> Self
pub fn new(store_id: StoreId) -> Self
Secondary viewer indexes are enabled by default.
Use Self::with_store_config for more control.
pub fn with_store_config( store_id: StoreId, enable_viewer_indexes: bool, store_config: ChunkStoreConfig, ) -> Self
pub fn tree(&self) -> &EntityTree
Sourcepub fn format_with_components(&self) -> String
pub fn format_with_components(&self) -> String
Formats the entity tree into a human-readable text representation with component schema information.
Sourcepub fn storage_engine(&self) -> StorageEngineReadGuard<'_>
pub fn storage_engine(&self) -> StorageEngineReadGuard<'_>
Returns a read-only guard to the backing StorageEngine.
Sourcepub fn num_physical_chunks(&self) -> usize
pub fn num_physical_chunks(&self) -> usize
Number of physical chunks currently loaded.
Sourcepub fn byte_size_of_physical_chunks(&self) -> u64
pub fn byte_size_of_physical_chunks(&self) -> u64
The total size of the physical chunks currently loaded in memory.
This is the evictable data — the raw arrow chunk data that can be GC’d.
pub fn rrd_manifest_index_mut_and_storage_engine( &mut self, ) -> (&mut RrdManifestIndex, StorageEngineReadGuard<'_>)
Sourcepub unsafe fn storage_engine_raw(&self) -> &StorageEngine
pub unsafe fn storage_engine_raw(&self) -> &StorageEngine
Returns a reference to the backing StorageEngine.
This can be used to obtain a clone of the StorageEngine.
§Safety
Trying to lock the StorageEngine (whether read or write) while the computation of a viewer’s
frame is already in progress will lead to data inconsistencies, livelocks and deadlocks.
The viewer runs a synchronous work-stealing scheduler (rayon) as well as an asynchronous
one (tokio): when and where locks are taken is entirely non-deterministic (even unwanted reentrancy
is a possibility).
Don’t use this unless you know what you’re doing. Use Self::storage_engine instead.
Sourcepub fn storage_engine_arc(&self) -> StorageEngineArcReadGuard
pub fn storage_engine_arc(&self) -> StorageEngineArcReadGuard
Returns a read-only guard to the backing StorageEngine.
That guard can be cloned at will and has a static lifetime.
It is not possible to insert any more data in this EntityDb until the returned guard,
and any clones, have been dropped.
pub fn rrd_manifest_index(&self) -> &RrdManifestIndex
pub fn rrd_manifest_index_mut(&mut self) -> &mut RrdManifestIndex
Sourcepub fn can_fetch_chunks_from_redap(&self) -> bool
pub fn can_fetch_chunks_from_redap(&self) -> bool
Are we connected to redap, and can fetch missing chunks?
Sourcepub fn is_currently_downloading_manifest(&self) -> bool
pub fn is_currently_downloading_manifest(&self) -> bool
Are we currently in the process of downloading the RRD Manifest?
Sourcepub fn is_buffering(&self) -> bool
pub fn is_buffering(&self) -> bool
True if we’re are currently waiting for necessary data to be loaded before we can show it.
pub fn store_info_msg(&self) -> Option<&SetStoreInfo>
pub fn store_info(&self) -> Option<&StoreInfo>
pub fn application_id(&self) -> &ApplicationId
pub fn recording_id(&self) -> &RecordingId
pub fn store_kind(&self) -> StoreKind
pub fn store_id(&self) -> &StoreId
Sourcepub fn redap_uri(&self) -> Option<&DatasetSegmentUri>
pub fn redap_uri(&self) -> Option<&DatasetSegmentUri>
What redap URI does this thing live on?
Sourcepub fn store_class(&self) -> EntityDbClass<'_>
pub fn store_class(&self) -> EntityDbClass<'_>
Returns the EntityDbClass of this entity db.
Sourcepub fn recording_info_property<C: Component>(
&self,
component: ComponentIdentifier,
) -> Option<C>
pub fn recording_info_property<C: Component>( &self, component: ComponentIdentifier, ) -> Option<C>
Read one of the built-in RecordingInfo properties.
Sourcepub fn set_recording_property<Component: Component>(
&mut self,
entity_path: EntityPath,
component_descr: ComponentDescriptor,
value: &Component,
) -> Result<(), Error>
pub fn set_recording_property<Component: Component>( &mut self, entity_path: EntityPath, component_descr: ComponentDescriptor, value: &Component, ) -> Result<(), Error>
Use can use this both for setting the built-in RecordingInfo components,
and for setting custom properties on the recording.
pub fn timeline_type(&self, timeline_name: &TimelineName) -> TimeType
Sourcepub fn latest_at(
&self,
query: &LatestAtQuery,
entity_path: &EntityPath,
components: impl IntoIterator<Item = ComponentIdentifier>,
) -> LatestAtResults
pub fn latest_at( &self, query: &LatestAtQuery, entity_path: &EntityPath, components: impl IntoIterator<Item = ComponentIdentifier>, ) -> LatestAtResults
Queries for the given components using latest-at semantics.
See re_query::LatestAtResults for more information about how to handle the results.
This is a cached API – data will be lazily cached upon access.
Sourcepub fn latest_at_component<C: Component>(
&self,
entity_path: &EntityPath,
query: &LatestAtQuery,
component: ComponentIdentifier,
) -> Option<((TimeInt, RowId), C)>
pub fn latest_at_component<C: Component>( &self, entity_path: &EntityPath, query: &LatestAtQuery, component: ComponentIdentifier, ) -> Option<((TimeInt, RowId), C)>
Get the latest index and value for a given dense re_types_core::Component.
This assumes that the row we get from the store contains at most one instance for this component; it will log a warning otherwise.
This should only be used for “mono-components” such as Transform and Tensor.
This is a best-effort helper, it will merely log errors on failure.
Sourcepub fn latest_at_component_quiet<C: Component>(
&self,
entity_path: &EntityPath,
query: &LatestAtQuery,
component: ComponentIdentifier,
) -> Option<((TimeInt, RowId), C)>
pub fn latest_at_component_quiet<C: Component>( &self, entity_path: &EntityPath, query: &LatestAtQuery, component: ComponentIdentifier, ) -> Option<((TimeInt, RowId), C)>
Get the latest index and value for a given dense re_types_core::Component.
This assumes that the row we get from the store contains at most one instance for this component; it will log a warning otherwise.
This should only be used for “mono-components” such as Transform and Tensor.
This is a best-effort helper, and will quietly swallow any errors.
pub fn latest_at_component_at_closest_ancestor<C: Component>( &self, entity_path: &EntityPath, query: &LatestAtQuery, component: ComponentIdentifier, ) -> Option<(EntityPath, (TimeInt, RowId), C)>
Sourcepub fn can_load_more(&self) -> bool
pub fn can_load_more(&self) -> bool
Can we load this recording more right now?
Sourcepub fn has_fully_loaded_query(
&self,
entity_path: &EntityPath,
component: ComponentIdentifier,
query: &LatestAtQuery,
) -> bool
pub fn has_fully_loaded_query( &self, entity_path: &EntityPath, component: ComponentIdentifier, query: &LatestAtQuery, ) -> bool
Check if we have all loaded chunk for the given entity and component at query.at().
Sourcepub fn cloned_from(&self) -> Option<&StoreId>
pub fn cloned_from(&self) -> Option<&StoreId>
If this entity db is the result of a clone, which store was it cloned from?
A cloned store always gets a new unique ID.
We currently only use entity db cloning for blueprints: when we activate a default blueprint that was received on the wire (e.g. from a recording), we clone it and make the clone the active blueprint. This means all active blueprints are clones.
pub fn timelines(&self) -> BTreeMap<TimelineName, Timeline>
Sourcepub fn timeline_histograms(&self) -> &TimeHistogramPerTimeline
pub fn timeline_histograms(&self) -> &TimeHistogramPerTimeline
When do we have data on each timeline?
Sourcepub fn time_range_for(
&self,
timeline: &TimelineName,
) -> Option<AbsoluteTimeRange>
pub fn time_range_for( &self, timeline: &TimelineName, ) -> Option<AbsoluteTimeRange>
Returns the time range of data on the given timeline, ignoring any static times.
Sourcepub fn time_histogram(&self, timeline: &TimelineName) -> Option<&TimeHistogram>
pub fn time_histogram(&self, timeline: &TimelineName) -> Option<&TimeHistogram>
Histogram of all events on the timeeline, of all entities.
Sourcepub fn generation(&self) -> ChunkStoreGeneration
pub fn generation(&self) -> ChunkStoreGeneration
Return the current ChunkStoreGeneration. This can be used to determine whether the
database has been modified since the last time it was queried.
pub fn last_modified_at(&self) -> Instant
Sourcepub fn latest_row_id(&self) -> Option<RowId>
pub fn latest_row_id(&self) -> Option<RowId>
The highest RowId in the store,
which corresponds to the last edit time.
Ignores deletions.
Sourcepub fn sorted_entity_paths(&self) -> impl Iterator<Item = &EntityPath>
pub fn sorted_entity_paths(&self) -> impl Iterator<Item = &EntityPath>
A sorted list of all the entity paths in this database.
pub fn ingestion_stats(&self) -> &IngestionStatistics
pub fn entity_path_from_hash( &self, entity_path_hash: &EntityPathHash, ) -> Option<&EntityPath>
Sourcepub fn is_known_entity(&self, entity_path: &EntityPath) -> bool
pub fn is_known_entity(&self, entity_path: &EntityPath) -> bool
Returns true also for entities higher up in the hierarchy.
Sourcepub fn is_logged_entity(&self, entity_path: &EntityPath) -> bool
pub fn is_logged_entity(&self, entity_path: &EntityPath) -> bool
If you log world/points, then that is a logged entity, but world is not,
unless you log something to world too.
pub fn add_rrd_manifest_message(&mut self, rrd_manifest: Arc<RrdManifest>)
Sourcepub fn add_log_msg(
&mut self,
msg: &LogMsg,
) -> Result<Vec<ChunkStoreEvent>, Error>
pub fn add_log_msg( &mut self, msg: &LogMsg, ) -> Result<Vec<ChunkStoreEvent>, Error>
Insert new data into the store.
Sourcepub fn add_record_batch(
&mut self,
record_batch: &RecordBatch,
) -> Result<Vec<ChunkStoreEvent>, Error>
pub fn add_record_batch( &mut self, record_batch: &RecordBatch, ) -> Result<Vec<ChunkStoreEvent>, Error>
Insert a chunk (encoded as a record batch) into the store.
Sourcepub fn add_chunk(
&mut self,
chunk: &Arc<Chunk>,
) -> Result<Vec<ChunkStoreEvent>, Error>
pub fn add_chunk( &mut self, chunk: &Arc<Chunk>, ) -> Result<Vec<ChunkStoreEvent>, Error>
Insert new data into the store.
pub fn set_store_info(&mut self, store_info: SetStoreInfo)
Sourcepub fn gc_with_target(
&mut self,
target: GarbageCollectionTarget,
time_cursor: Option<TimelinePoint>,
) -> Vec<ChunkStoreEvent>
pub fn gc_with_target( &mut self, target: GarbageCollectionTarget, time_cursor: Option<TimelinePoint>, ) -> Vec<ChunkStoreEvent>
Free up some RAM by forgetting the older parts of all timelines.
Sourcepub fn gc(&self, gc_options: &GarbageCollectionOptions) -> Vec<ChunkStoreEvent>
pub fn gc(&self, gc_options: &GarbageCollectionOptions) -> Vec<ChunkStoreEvent>
The chunk store events are not handled within this function!
Sourcepub fn drop_time_range(
&mut self,
timeline: &TimelineName,
drop_range: AbsoluteTimeRange,
) -> Vec<ChunkStoreEvent>
pub fn drop_time_range( &mut self, timeline: &TimelineName, drop_range: AbsoluteTimeRange, ) -> Vec<ChunkStoreEvent>
Drop all events in the given time range from the given timeline.
Used to implement undo (erase the last event from the blueprint db).
Sourcepub fn drop_entity_path(&mut self, entity_path: &EntityPath)
pub fn drop_entity_path(&mut self, entity_path: &EntityPath)
Unconditionally drops all the data for a given EntityPath .
This is not recursive. Children of this entity will not be affected.
To drop the entire subtree below an entity, see: Self::drop_entity_path_recursive.
Sourcepub fn drop_entity_path_recursive(&mut self, entity_path: &EntityPath)
pub fn drop_entity_path_recursive(&mut self, entity_path: &EntityPath)
Unconditionally drops all the data for a given EntityPath and all its children.
Sourcepub fn to_messages(
&self,
time_selection: Option<(TimelineName, AbsoluteTimeRangeF)>,
) -> impl Iterator<Item = ChunkResult<LogMsg>> + '_
pub fn to_messages( &self, time_selection: Option<(TimelineName, AbsoluteTimeRangeF)>, ) -> impl Iterator<Item = ChunkResult<LogMsg>> + '_
Export the contents of the current database to a sequence of messages.
If time_selection is specified, then only data for that specific timeline over that
specific time range will be accounted for.
Source§impl EntityDb
§Stats
impl EntityDb
§Stats
Sourcepub fn subtree_stats_static(
&self,
engine: &StorageEngineReadGuard<'_>,
entity_path: &EntityPath,
) -> ChunkStoreChunkStats
pub fn subtree_stats_static( &self, engine: &StorageEngineReadGuard<'_>, entity_path: &EntityPath, ) -> ChunkStoreChunkStats
Returns the stats for the static store of the entity and all its children, recursively.
This excludes temporal data.
Sourcepub fn subtree_stats_on_timeline(
&self,
engine: &StorageEngineReadGuard<'_>,
entity_path: &EntityPath,
timeline: &TimelineName,
) -> ChunkStoreChunkStats
pub fn subtree_stats_on_timeline( &self, engine: &StorageEngineReadGuard<'_>, entity_path: &EntityPath, timeline: &TimelineName, ) -> ChunkStoreChunkStats
Returns the stats for the entity and all its children on the given timeline, recursively.
This excludes static data.
Sourcepub fn subtree_has_data_on_timeline(
&self,
engine: &StorageEngineReadGuard<'_>,
timeline: &TimelineName,
entity_path: &EntityPath,
) -> bool
pub fn subtree_has_data_on_timeline( &self, engine: &StorageEngineReadGuard<'_>, timeline: &TimelineName, entity_path: &EntityPath, ) -> bool
Returns true if an entity or any of its children have any data on the given timeline.
This includes static data.
Sourcepub fn subtree_has_temporal_data_on_timeline(
&self,
engine: &StorageEngineReadGuard<'_>,
timeline: &TimelineName,
entity_path: &EntityPath,
) -> bool
pub fn subtree_has_temporal_data_on_timeline( &self, engine: &StorageEngineReadGuard<'_>, timeline: &TimelineName, entity_path: &EntityPath, ) -> bool
Returns true if an entity or any of its children have any temporal data on the given timeline.
This ignores static data.
Sourcepub fn entity_has_temporal_data_on_timeline(
&self,
engine: &StorageEngineReadGuard<'_>,
timeline: &TimelineName,
entity_path: &EntityPath,
) -> bool
pub fn entity_has_temporal_data_on_timeline( &self, engine: &StorageEngineReadGuard<'_>, timeline: &TimelineName, entity_path: &EntityPath, ) -> bool
Returns true if an entity has any temporal data on the given timeline.
This ignores static data.
Sourcepub fn entity_has_temporal_data_on_timeline_for_component(
&self,
engine: &StorageEngineReadGuard<'_>,
timeline: &TimelineName,
entity_path: &EntityPath,
component: ComponentIdentifier,
) -> bool
pub fn entity_has_temporal_data_on_timeline_for_component( &self, engine: &StorageEngineReadGuard<'_>, timeline: &TimelineName, entity_path: &EntityPath, component: ComponentIdentifier, ) -> bool
Returns true if an entity has data for the given component on the given timeline at any point in time.
This ignores static data.
This is a more fine grained version of Self::entity_has_temporal_data_on_timeline.
Trait Implementations§
Source§impl MemUsageTreeCapture for EntityDb
impl MemUsageTreeCapture for EntityDb
fn capture_mem_usage_tree(&self) -> MemUsageTree
Source§impl SizeBytes for EntityDb
impl SizeBytes for EntityDb
Source§fn heap_size_bytes(&self) -> u64
fn heap_size_bytes(&self) -> u64
self uses on the heap. Read moreSource§fn total_size_bytes(&self) -> u64
fn total_size_bytes(&self) -> u64
self in bytes, accounting for both stack and heap space.Source§fn stack_size_bytes(&self) -> u64
fn stack_size_bytes(&self) -> u64
self on the stack, in bytes. Read moreAuto Trait Implementations§
impl !Freeze for EntityDb
impl !RefUnwindSafe for EntityDb
impl Send for EntityDb
impl Sync for EntityDb
impl Unpin for EntityDb
impl UnsafeUnpin for EntityDb
impl !UnwindSafe for EntityDb
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
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> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
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.