Struct hotshot_orchestrator::config::NetworkConfig
source · pub struct NetworkConfig<KEY: SignatureKey> {Show 23 fields
pub rounds: usize,
pub indexed_da: bool,
pub transactions_per_round: usize,
pub manual_start_password: Option<String>,
pub num_bootrap: usize,
pub next_view_timeout: u64,
pub view_sync_timeout: Duration,
pub builder_timeout: Duration,
pub data_request_delay: Duration,
pub node_index: u64,
pub seed: [u8; 32],
pub transaction_size: usize,
pub start_delay_seconds: u64,
pub key_type_name: String,
pub libp2p_config: Option<Libp2pConfig>,
pub config: HotShotConfig<KEY>,
pub cdn_marshal_address: Option<String>,
pub combined_network_config: Option<CombinedNetworkConfig>,
pub commit_sha: String,
pub builder: BuilderType,
pub random_builder: Option<RandomBuilderConfig>,
pub public_keys: HashSet<KEY>,
pub enable_registration_verification: bool,
}
Expand description
a network configuration
Fields§
§rounds: usize
number of views to run
indexed_da: bool
whether DA membership is determined by index. if true, the first k nodes to register form the DA committee if false, DA membership is requested by the nodes
transactions_per_round: usize
number of transactions per view
manual_start_password: Option<String>
password to have the orchestrator start the network, regardless of the number of nodes connected.
num_bootrap: usize
number of bootstrap nodes
next_view_timeout: u64
timeout before starting the next view
view_sync_timeout: Duration
timeout before starting next view sync round
builder_timeout: Duration
The maximum amount of time a leader can wait to get a block from a builder
data_request_delay: Duration
time to wait until we request data associated with a proposal
node_index: u64
global index of node (for testing purposes a uid)
seed: [u8; 32]
unique seed (for randomness? TODO)
transaction_size: usize
size of transactions
start_delay_seconds: u64
delay before beginning consensus
key_type_name: String
name of the key type (for debugging)
libp2p_config: Option<Libp2pConfig>
the libp2p config
config: HotShotConfig<KEY>
the hotshot config
cdn_marshal_address: Option<String>
The address for the Push CDN’s “marshal”, A.K.A. load balancer
combined_network_config: Option<CombinedNetworkConfig>
combined network config
commit_sha: String
the commit this run is based on
builder: BuilderType
builder to use
random_builder: Option<RandomBuilderConfig>
random builder config
public_keys: HashSet<KEY>
The list of public keys that are allowed to connect to the orchestrator
enable_registration_verification: bool
Whether or not to disable registration verification.
Implementations§
source§impl<K: SignatureKey> NetworkConfig<K>
impl<K: SignatureKey> NetworkConfig<K>
sourcepub async fn from_file_or_orchestrator(
client: &OrchestratorClient,
file: Option<String>,
libp2p_address: Option<SocketAddr>,
libp2p_public_key: Option<PeerId>
) -> Result<(NetworkConfig<K>, NetworkConfigSource)>
pub async fn from_file_or_orchestrator( client: &OrchestratorClient, file: Option<String>, libp2p_address: Option<SocketAddr>, libp2p_public_key: Option<PeerId> ) -> Result<(NetworkConfig<K>, NetworkConfigSource)>
Asynchronously retrieves a NetworkConfig
either from a file or from an orchestrator.
This function takes an OrchestratorClient
, an optional file path, and Libp2p-specific parameters.
If a file path is provided, the function will first attempt to load the NetworkConfig
from the file.
If the file does not exist or cannot be read, the function will fall back to retrieving the NetworkConfig
from the orchestrator.
In this case, if the path to the file does not exist, it will be created.
The retrieved NetworkConfig
is then saved back to the file for future use.
If no file path is provided, the function will directly retrieve the NetworkConfig
from the orchestrator.
§Errors
If we were unable to load the configuration.
§Arguments
client
- AnOrchestratorClient
used to retrieve theNetworkConfig
from the orchestrator.identity
- A string representing the identity for which to retrieve theNetworkConfig
.file
- An optional string representing the path to the file from which to load theNetworkConfig
.libp2p_address
- An optional address specifying where other Libp2p nodes can reach uslibp2p_public_key
- The public key in which other Libp2p nodes can reach us with
§Returns
This function returns a tuple containing a NetworkConfig
and a NetworkConfigSource
. The NetworkConfigSource
indicates whether the NetworkConfig
was loaded from a file or retrieved from the orchestrator.
sourcepub async fn generate_init_validator_config(
client: &OrchestratorClient,
is_da: bool
) -> ValidatorConfig<K>
pub async fn generate_init_validator_config( client: &OrchestratorClient, is_da: bool ) -> ValidatorConfig<K>
Get a temporary node index for generating a validator config
sourcepub async fn get_complete_config(
client: &OrchestratorClient,
my_own_validator_config: ValidatorConfig<K>,
libp2p_address: Option<SocketAddr>,
libp2p_public_key: Option<PeerId>
) -> Result<(NetworkConfig<K>, NetworkConfigSource)>
pub async fn get_complete_config( client: &OrchestratorClient, my_own_validator_config: ValidatorConfig<K>, libp2p_address: Option<SocketAddr>, libp2p_public_key: Option<PeerId> ) -> Result<(NetworkConfig<K>, NetworkConfigSource)>
Asynchronously retrieves a NetworkConfig
from an orchestrator.
The retrieved one includes correct node_index
and peer’s public config.
§Errors
If we are unable to get the configuration from the orchestrator
sourcepub fn from_file(file: String) -> Result<Self, NetworkConfigError>
pub fn from_file(file: String) -> Result<Self, NetworkConfigError>
Loads a NetworkConfig
from a file.
This function takes a file path as a string, reads the file, and then deserializes the contents into a NetworkConfig
.
§Arguments
file
- A string representing the path to the file from which to load theNetworkConfig
.
§Returns
This function returns a Result
that contains a NetworkConfig
if the file was successfully read and deserialized, or a NetworkConfigError
if an error occurred.
§Errors
This function will return an error if the file cannot be read or if the contents cannot be deserialized into a NetworkConfig
.
§Examples
// # use hotshot::traits::election::static_committee::StaticElectionConfig;
let file = "/path/to/my/config".to_string();
// NOTE: broken due to staticelectionconfig not being importable
// cannot import staticelectionconfig from hotshot without creating circular dependency
// making this work probably involves the `types` crate implementing a dummy
// electionconfigtype just ot make this example work
let config = NetworkConfig::<BLSPubKey, StaticElectionConfig>::from_file(file).unwrap();
sourcepub fn to_file(&self, file: String) -> Result<(), NetworkConfigError>
pub fn to_file(&self, file: String) -> Result<(), NetworkConfigError>
Serializes the NetworkConfig
and writes it to a file.
This function takes a file path as a string, serializes the NetworkConfig
into JSON format using serde_json
and then writes the serialized data to the file.
§Arguments
file
- A string representing the path to the file where theNetworkConfig
should be saved.
§Returns
This function returns a Result
that contains ()
if the NetworkConfig
was successfully serialized and written to the file, or a NetworkConfigError
if an error occurred.
§Errors
This function will return an error if the NetworkConfig
cannot be serialized or if the file cannot be written.
§Examples
let file = "/path/to/my/config".to_string();
let config = NetworkConfig::from_file(file);
config.to_file(file).unwrap();
Trait Implementations§
source§impl<KEY: Clone + SignatureKey> Clone for NetworkConfig<KEY>
impl<KEY: Clone + SignatureKey> Clone for NetworkConfig<KEY>
source§fn clone(&self) -> NetworkConfig<KEY>
fn clone(&self) -> NetworkConfig<KEY>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<KEY: Debug + SignatureKey> Debug for NetworkConfig<KEY>
impl<KEY: Debug + SignatureKey> Debug for NetworkConfig<KEY>
source§impl<K: SignatureKey> Default for NetworkConfig<K>
impl<K: SignatureKey> Default for NetworkConfig<K>
source§impl<'de, KEY: SignatureKey> Deserialize<'de> for NetworkConfig<KEY>
impl<'de, KEY: SignatureKey> Deserialize<'de> for NetworkConfig<KEY>
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl<K: SignatureKey> From<NetworkConfigFile<K>> for NetworkConfig<K>
impl<K: SignatureKey> From<NetworkConfigFile<K>> for NetworkConfig<K>
source§fn from(val: NetworkConfigFile<K>) -> Self
fn from(val: NetworkConfigFile<K>) -> Self
source§impl<KEY> Serialize for NetworkConfig<KEY>where
KEY: Serialize + SignatureKey,
impl<KEY> Serialize for NetworkConfig<KEY>where
KEY: Serialize + SignatureKey,
Auto Trait Implementations§
impl<KEY> Freeze for NetworkConfig<KEY>
impl<KEY> RefUnwindSafe for NetworkConfig<KEY>where
KEY: RefUnwindSafe,
<KEY as SignatureKey>::PrivateKey: RefUnwindSafe,
<KEY as SignatureKey>::StakeTableEntry: RefUnwindSafe,
impl<KEY> Send for NetworkConfig<KEY>
impl<KEY> Sync for NetworkConfig<KEY>
impl<KEY> Unpin for NetworkConfig<KEY>where
KEY: Unpin,
<KEY as SignatureKey>::PrivateKey: Unpin,
<KEY as SignatureKey>::StakeTableEntry: Unpin,
impl<KEY> UnwindSafe for NetworkConfig<KEY>where
KEY: UnwindSafe,
<KEY as SignatureKey>::PrivateKey: UnwindSafe,
<KEY as SignatureKey>::StakeTableEntry: UnwindSafe,
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> 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,
§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<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 more§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<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
§fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
§fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
§fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
§fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
§fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
§fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
§fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
§fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
§fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
§fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
§fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
§fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
§fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
§fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
§fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
§fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
§fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
§fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
§fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
§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.