Struct massa_grpc::server::MassaPrivateGrpc
source · pub struct MassaPrivateGrpc {
pub consensus_controller: Box<dyn ConsensusController>,
pub execution_controller: Box<dyn ExecutionController>,
pub pool_controller: Box<dyn PoolController>,
pub protocol_controller: Box<dyn ProtocolController>,
pub stop_cv: Arc<(Mutex<bool>, Condvar)>,
pub node_wallet: Arc<RwLock<Wallet>>,
pub grpc_config: GrpcConfig,
pub protocol_config: ProtocolConfig,
pub node_id: NodeId,
pub mip_store: MipStore,
pub version: Version,
pub bs_white_black_list: Option<SharedWhiteBlackList<'static>>,
}Expand description
gRPC PRIVATE API content
Fields§
§consensus_controller: Box<dyn ConsensusController>link to the consensus component
execution_controller: Box<dyn ExecutionController>link to the execution component
pool_controller: Box<dyn PoolController>link to the pool component
protocol_controller: Box<dyn ProtocolController>link to the protocol component
stop_cv: Arc<(Mutex<bool>, Condvar)>Mechanism by which to gracefully shut down. To be a clone of the same pair provided to the ctrlc handler.
node_wallet: Arc<RwLock<Wallet>>User wallet
grpc_config: GrpcConfiggRPC configuration
protocol_config: ProtocolConfigMassa protocol configuration
node_id: NodeIdour node id
mip_store: MipStoredatabase for all MIP info
version: Versionnode version
bs_white_black_list: Option<SharedWhiteBlackList<'static>>white/black list of bootstrap
Implementations§
source§impl MassaPrivateGrpc
impl MassaPrivateGrpc
sourcepub async fn serve(self, config: &GrpcConfig) -> Result<StopHandle, GrpcError>
pub async fn serve(self, config: &GrpcConfig) -> Result<StopHandle, GrpcError>
Start the gRPC PRIVATE API
Trait Implementations§
source§impl Clone for MassaPrivateGrpc
impl Clone for MassaPrivateGrpc
source§fn clone(&self) -> MassaPrivateGrpc
fn clone(&self) -> MassaPrivateGrpc
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl PrivateService for MassaPrivateGrpc
impl PrivateService for MassaPrivateGrpc
source§fn add_to_bootstrap_blacklist<'life0, 'async_trait>(
&'life0 self,
request: Request<AddToBootstrapBlacklistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddToBootstrapBlacklistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_to_bootstrap_blacklist<'life0, 'async_trait>(
&'life0 self,
request: Request<AddToBootstrapBlacklistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddToBootstrapBlacklistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Add IP addresses to node bootstrap blacklist
source§fn add_to_bootstrap_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<AddToBootstrapWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddToBootstrapWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_to_bootstrap_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<AddToBootstrapWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddToBootstrapWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Add IP addresses to node bootstrap whitelist
source§fn add_to_peers_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<AddToPeersWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddToPeersWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_to_peers_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<AddToPeersWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddToPeersWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Add IP addresses to node peers whitelist. No confirmation to expect. Note: If the ip was unknown it adds it to the known peers, otherwise it updates the peer type
source§fn add_staking_secret_keys<'life0, 'async_trait>(
&'life0 self,
request: Request<AddStakingSecretKeysRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddStakingSecretKeysResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn add_staking_secret_keys<'life0, 'async_trait>(
&'life0 self,
request: Request<AddStakingSecretKeysRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AddStakingSecretKeysResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Add staking secret keys to wallet
source§fn ban_nodes_by_ids<'life0, 'async_trait>(
&'life0 self,
request: Request<BanNodesByIdsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<BanNodesByIdsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ban_nodes_by_ids<'life0, 'async_trait>(
&'life0 self,
request: Request<BanNodesByIdsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<BanNodesByIdsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Ban multiple nodes by their individual ids
source§fn ban_nodes_by_ips<'life0, 'async_trait>(
&'life0 self,
request: Request<BanNodesByIpsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<BanNodesByIpsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn ban_nodes_by_ips<'life0, 'async_trait>(
&'life0 self,
request: Request<BanNodesByIpsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<BanNodesByIpsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Ban multiple nodes by their individual IP addresses
source§fn get_bootstrap_blacklist<'life0, 'async_trait>(
&'life0 self,
request: Request<GetBootstrapBlacklistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetBootstrapBlacklistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_bootstrap_blacklist<'life0, 'async_trait>(
&'life0 self,
request: Request<GetBootstrapBlacklistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetBootstrapBlacklistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get node bootstrap blacklist IP addresses
source§fn get_bootstrap_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<GetBootstrapWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetBootstrapWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_bootstrap_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<GetBootstrapWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetBootstrapWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get node bootstrap whitelist IP addresses
source§fn get_mip_status<'life0, 'async_trait>(
&'life0 self,
request: Request<GetMipStatusRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetMipStatusResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_mip_status<'life0, 'async_trait>(
&'life0 self,
request: Request<GetMipStatusRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetMipStatusResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
handler for get mip status (versioning)
source§fn allow_everyone_to_bootstrap<'life0, 'async_trait>(
&'life0 self,
request: Request<AllowEveryoneToBootstrapRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AllowEveryoneToBootstrapResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn allow_everyone_to_bootstrap<'life0, 'async_trait>(
&'life0 self,
request: Request<AllowEveryoneToBootstrapRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<AllowEveryoneToBootstrapResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Allow everyone to bootstrap from the node by removing bootstrap whitelist configuration file
source§fn get_node_status<'life0, 'async_trait>(
&'life0 self,
request: Request<GetNodeStatusRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetNodeStatusResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_node_status<'life0, 'async_trait>(
&'life0 self,
request: Request<GetNodeStatusRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetNodeStatusResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get node status
source§fn get_peers_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPeersWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetPeersWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_peers_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<GetPeersWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<GetPeersWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Get node peers whitelist IP addresses
source§fn remove_from_bootstrap_blacklist<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveFromBootstrapBlacklistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveFromBootstrapBlacklistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn remove_from_bootstrap_blacklist<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveFromBootstrapBlacklistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveFromBootstrapBlacklistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Remove from bootstrap blacklist given IP addresses
source§fn remove_from_bootstrap_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveFromBootstrapWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveFromBootstrapWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn remove_from_bootstrap_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveFromBootstrapWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveFromBootstrapWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Remove from bootstrap whitelist given IP addresses
source§fn remove_from_peers_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveFromPeersWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveFromPeersWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn remove_from_peers_whitelist<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveFromPeersWhitelistRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveFromPeersWhitelistResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Remove from peers whitelist given IP addresses
source§fn remove_staking_addresses<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveStakingAddressesRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveStakingAddressesResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn remove_staking_addresses<'life0, 'async_trait>(
&'life0 self,
request: Request<RemoveStakingAddressesRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<RemoveStakingAddressesResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Remove addresses from staking
source§fn sign_messages<'life0, 'async_trait>(
&'life0 self,
request: Request<SignMessagesRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<SignMessagesResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sign_messages<'life0, 'async_trait>(
&'life0 self,
request: Request<SignMessagesRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<SignMessagesResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sign messages with node’s key
source§fn shutdown_gracefully<'life0, 'async_trait>(
&'life0 self,
request: Request<ShutdownGracefullyRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ShutdownGracefullyResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn shutdown_gracefully<'life0, 'async_trait>(
&'life0 self,
request: Request<ShutdownGracefullyRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<ShutdownGracefullyResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Shutdown the node gracefully
source§fn unban_nodes_by_ids<'life0, 'async_trait>(
&'life0 self,
request: Request<UnbanNodesByIdsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UnbanNodesByIdsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn unban_nodes_by_ids<'life0, 'async_trait>(
&'life0 self,
request: Request<UnbanNodesByIdsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UnbanNodesByIdsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Unban multiple nodes by their individual ids
source§fn unban_nodes_by_ips<'life0, 'async_trait>(
&'life0 self,
request: Request<UnbanNodesByIpsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UnbanNodesByIpsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn unban_nodes_by_ips<'life0, 'async_trait>(
&'life0 self,
request: Request<UnbanNodesByIpsRequest>,
) -> Pin<Box<dyn Future<Output = Result<Response<UnbanNodesByIpsResponse>, Status>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Unban multiple nodes by their individual IP addresses
Auto Trait Implementations§
impl Freeze for MassaPrivateGrpc
impl !RefUnwindSafe for MassaPrivateGrpc
impl Send for MassaPrivateGrpc
impl Sync for MassaPrivateGrpc
impl Unpin for MassaPrivateGrpc
impl !UnwindSafe for MassaPrivateGrpc
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
§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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit)§impl<T> Conv for T
impl<T> Conv for T
§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
§fn deserialize(
&self,
deserializer: &mut D,
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize( &self, deserializer: &mut D, ) -> Result<With<T, W>, <D as Fallible>::Error>
§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 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> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
§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> 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.