pub struct CheckpointStore { /* private fields */ }Implementations§
Source§impl CheckpointStore
impl CheckpointStore
pub fn new(path: &Path, pruner_watermarks: Arc<PrunerWatermarks>) -> Arc<Self>
pub fn new_for_tests() -> Arc<Self>
pub fn new_for_db_checkpoint_handler(path: &Path) -> Arc<Self>
pub fn set_binary_version(&self, version: &str)
pub fn open_readonly(path: &Path) -> CheckpointStoreTablesReadOnly
pub fn insert_genesis_checkpoint( &self, checkpoint: VerifiedCheckpoint, contents: CheckpointContents, epoch_store: &AuthorityPerEpochStore, )
pub fn get_checkpoint_by_digest( &self, digest: &CheckpointDigest, ) -> Result<Option<VerifiedCheckpoint>, TypedStoreError>
pub fn get_checkpoint_by_sequence_number( &self, sequence_number: CheckpointSequenceNumber, ) -> Result<Option<VerifiedCheckpoint>, TypedStoreError>
pub fn get_locally_computed_checkpoint( &self, sequence_number: CheckpointSequenceNumber, ) -> Result<Option<CheckpointSummary>, TypedStoreError>
pub fn multi_get_locally_computed_checkpoints( &self, sequence_numbers: &[CheckpointSequenceNumber], ) -> Result<Vec<Option<CheckpointSummary>>, TypedStoreError>
pub fn get_sequence_number_by_contents_digest( &self, digest: &CheckpointContentsDigest, ) -> Result<Option<CheckpointSequenceNumber>, TypedStoreError>
pub fn delete_contents_digest_sequence_number_mapping( &self, digest: &CheckpointContentsDigest, ) -> Result<(), TypedStoreError>
pub fn get_latest_certified_checkpoint( &self, ) -> Result<Option<VerifiedCheckpoint>, TypedStoreError>
pub fn get_latest_locally_computed_checkpoint( &self, ) -> Result<Option<CheckpointSummary>, TypedStoreError>
pub fn multi_get_checkpoint_by_sequence_number( &self, sequence_numbers: &[CheckpointSequenceNumber], ) -> Result<Vec<Option<VerifiedCheckpoint>>, TypedStoreError>
pub fn multi_get_checkpoint_content( &self, contents_digest: &[CheckpointContentsDigest], ) -> Result<Vec<Option<CheckpointContents>>, TypedStoreError>
pub fn get_highest_verified_checkpoint( &self, ) -> Result<Option<VerifiedCheckpoint>, TypedStoreError>
pub fn get_highest_synced_checkpoint( &self, ) -> Result<Option<VerifiedCheckpoint>, TypedStoreError>
pub fn get_highest_synced_checkpoint_seq_number( &self, ) -> Result<Option<CheckpointSequenceNumber>, TypedStoreError>
pub fn get_highest_executed_checkpoint_seq_number( &self, ) -> Result<Option<CheckpointSequenceNumber>, TypedStoreError>
pub fn get_highest_executed_checkpoint( &self, ) -> Result<Option<VerifiedCheckpoint>, TypedStoreError>
pub fn get_highest_pruned_checkpoint_seq_number( &self, ) -> Result<Option<CheckpointSequenceNumber>, TypedStoreError>
pub fn get_checkpoint_contents( &self, digest: &CheckpointContentsDigest, ) -> Result<Option<CheckpointContents>, TypedStoreError>
pub fn get_full_checkpoint_contents_by_sequence_number( &self, seq: CheckpointSequenceNumber, ) -> Result<Option<VersionedFullCheckpointContents>, TypedStoreError>
pub fn clear_locally_computed_checkpoints_from( &self, from_seq: CheckpointSequenceNumber, ) -> SuiResult
pub fn insert_certified_checkpoint( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
pub fn insert_verified_checkpoint( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
pub fn update_highest_verified_checkpoint( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
pub fn update_highest_synced_checkpoint( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
pub async fn notify_read_synced_checkpoint( &self, seq: CheckpointSequenceNumber, ) -> VerifiedCheckpoint
pub async fn notify_read_executed_checkpoint( &self, seq: CheckpointSequenceNumber, ) -> VerifiedCheckpoint
pub fn update_highest_executed_checkpoint( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
pub fn update_highest_pruned_checkpoint( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
Sourcepub fn set_highest_executed_checkpoint_subtle(
&self,
checkpoint: &VerifiedCheckpoint,
) -> Result<(), TypedStoreError>
pub fn set_highest_executed_checkpoint_subtle( &self, checkpoint: &VerifiedCheckpoint, ) -> Result<(), TypedStoreError>
Sets highest executed checkpoint to any value.
WARNING: This method is very subtle and can corrupt the database if used incorrectly. It should only be used in one-off cases or tests after fully understanding the risk.
pub fn insert_checkpoint_contents( &self, contents: CheckpointContents, ) -> Result<(), TypedStoreError>
pub fn insert_verified_checkpoint_contents( &self, checkpoint: &VerifiedCheckpoint, full_contents: VerifiedCheckpointContents, ) -> Result<(), TypedStoreError>
pub fn delete_full_checkpoint_contents( &self, seq: CheckpointSequenceNumber, ) -> Result<(), TypedStoreError>
pub fn get_epoch_last_checkpoint( &self, epoch_id: EpochId, ) -> SuiResult<Option<VerifiedCheckpoint>>
pub fn get_epoch_last_checkpoint_seq_number( &self, epoch_id: EpochId, ) -> SuiResult<Option<CheckpointSequenceNumber>>
Sourcepub fn get_epoch_first_checkpoint_seq(
&self,
epoch: EpochId,
) -> SuiResult<Option<CheckpointSequenceNumber>>
pub fn get_epoch_first_checkpoint_seq( &self, epoch: EpochId, ) -> SuiResult<Option<CheckpointSequenceNumber>>
Returns the sequence number of the first checkpoint in the given epoch. For epoch 0 this is always 0; for epoch N > 0 it is last_checkpoint(N-1) + 1.
Sourcepub fn list_checkpoints_from_seq(
&self,
start: Option<CheckpointSequenceNumber>,
limit: usize,
) -> Result<Vec<(CheckpointSequenceNumber, VerifiedCheckpoint)>, TypedStoreError>
pub fn list_checkpoints_from_seq( &self, start: Option<CheckpointSequenceNumber>, limit: usize, ) -> Result<Vec<(CheckpointSequenceNumber, VerifiedCheckpoint)>, TypedStoreError>
Iterate certified checkpoints starting at start (inclusive), up to limit.
Sourcepub fn list_epoch_last_checkpoints(
&self,
start: Option<EpochId>,
limit: usize,
) -> Result<Vec<(EpochId, CheckpointSequenceNumber)>, TypedStoreError>
pub fn list_epoch_last_checkpoints( &self, start: Option<EpochId>, limit: usize, ) -> Result<Vec<(EpochId, CheckpointSequenceNumber)>, TypedStoreError>
Iterate epoch→last-checkpoint-seq entries starting at start epoch, up to limit.
Sourcepub fn list_checkpoint_digests(
&self,
start: Option<CheckpointDigest>,
limit: usize,
) -> Result<Vec<CheckpointDigest>, TypedStoreError>
pub fn list_checkpoint_digests( &self, start: Option<CheckpointDigest>, limit: usize, ) -> Result<Vec<CheckpointDigest>, TypedStoreError>
Iterate checkpoint digests from checkpoint_by_digest, starting at start, up to limit.
Sourcepub fn list_checkpoint_contents_digests(
&self,
start: Option<CheckpointContentsDigest>,
limit: usize,
) -> Result<Vec<CheckpointContentsDigest>, TypedStoreError>
pub fn list_checkpoint_contents_digests( &self, start: Option<CheckpointContentsDigest>, limit: usize, ) -> Result<Vec<CheckpointContentsDigest>, TypedStoreError>
Iterate checkpoint contents digests, starting at start, up to limit.
Sourcepub fn list_epoch_checkpoints(
&self,
epoch: EpochId,
start_seq: Option<CheckpointSequenceNumber>,
limit: usize,
) -> Result<Vec<(CheckpointSequenceNumber, VerifiedCheckpoint)>, TypedStoreError>
pub fn list_epoch_checkpoints( &self, epoch: EpochId, start_seq: Option<CheckpointSequenceNumber>, limit: usize, ) -> Result<Vec<(CheckpointSequenceNumber, VerifiedCheckpoint)>, TypedStoreError>
Iterate certified checkpoints belonging to epoch, starting at start_seq, up to limit.
pub fn insert_epoch_last_checkpoint( &self, epoch_id: EpochId, checkpoint: &VerifiedCheckpoint, ) -> SuiResult
pub fn get_epoch_state_commitments( &self, epoch: EpochId, ) -> SuiResult<Option<Vec<CheckpointCommitment>>>
Sourcepub fn get_epoch_stats(
&self,
epoch: EpochId,
last_checkpoint: &CheckpointSummary,
) -> Option<EpochStats>
pub fn get_epoch_stats( &self, epoch: EpochId, last_checkpoint: &CheckpointSummary, ) -> Option<EpochStats>
Given the epoch ID, and the last checkpoint of the epoch, derive a few statistics of the epoch.
pub fn checkpoint_db(&self, path: &Path) -> SuiResult
pub fn delete_highest_executed_checkpoint_test_only( &self, ) -> Result<(), TypedStoreError>
pub fn reset_db_for_execution_since_genesis(&self) -> SuiResult
pub fn record_checkpoint_fork_detected( &self, checkpoint_seq: CheckpointSequenceNumber, checkpoint_digest: CheckpointDigest, certified_checkpoint_digest: Option<CheckpointDigest>, ) -> Result<(), TypedStoreError>
pub fn get_checkpoint_fork_detected( &self, ) -> Result<Option<CheckpointForkInfo>, TypedStoreError>
pub fn clear_checkpoint_fork_detected(&self) -> Result<(), TypedStoreError>
pub fn record_transaction_fork_detected( &self, tx_digest: TransactionDigest, expected_effects_digest: TransactionEffectsDigest, actual_effects_digest: TransactionEffectsDigest, certified_checkpoint_seq: Option<CheckpointSequenceNumber>, ) -> Result<(), TypedStoreError>
pub fn get_transaction_fork_detected( &self, ) -> Result<Option<TransactionForkInfo>, TypedStoreError>
pub fn clear_transaction_fork_detected(&self) -> Result<(), TypedStoreError>
Auto Trait Implementations§
impl !Freeze for CheckpointStore
impl !RefUnwindSafe for CheckpointStore
impl Send for CheckpointStore
impl Sync for CheckpointStore
impl Unpin for CheckpointStore
impl UnsafeUnpin for CheckpointStore
impl !UnwindSafe for CheckpointStore
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<T> Conv for T
impl<T> Conv for T
§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>, 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>
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)
&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> 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,
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> 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> 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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a Request§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§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<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T, Conn> RunQueryDsl<Conn> for T
impl<T, Conn> RunQueryDsl<Conn> for T
§fn execute<'conn, 'query>(
self,
conn: &'conn mut Conn,
) -> <Conn as AsyncConnectionCore>::ExecuteFuture<'conn, 'query>where
Conn: AsyncConnectionCore + Send,
Self: ExecuteDsl<Conn> + 'query,
fn execute<'conn, 'query>(
self,
conn: &'conn mut Conn,
) -> <Conn as AsyncConnectionCore>::ExecuteFuture<'conn, 'query>where
Conn: AsyncConnectionCore + Send,
Self: ExecuteDsl<Conn> + 'query,
§fn load<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
§fn load_stream<'conn, 'query, U>(
self,
conn: &'conn mut Conn,
) -> Self::LoadFuture<'conn>where
Conn: AsyncConnectionCore,
U: 'conn,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load_stream<'conn, 'query, U>(
self,
conn: &'conn mut Conn,
) -> Self::LoadFuture<'conn>where
Conn: AsyncConnectionCore,
U: 'conn,
Self: LoadQuery<'query, Conn, U> + 'query,
Stream] with the returned rows. Read more§fn get_result<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, LoadNext<Pin<Box<Self::Stream<'conn>>>>>where
U: Send + 'conn,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_result<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, LoadNext<Pin<Box<Self::Stream<'conn>>>>>where
U: Send + 'conn,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
§fn get_results<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_results<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
Vec with the affected rows. Read more§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.