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: GrpcConfig
gRPC configuration
protocol_config: ProtocolConfig
Massa protocol configuration
node_id: NodeId
our node id
mip_store: MipStore
database for all MIP info
version: Version
node 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.