pub struct BridgeConfig {Show 40 fields
pub protocol_paramset: &'static ProtocolParamset,
pub host: String,
pub port: u16,
pub secret_key: SecretKey,
pub operator_withdrawal_fee_sats: Option<Amount>,
pub bitcoin_rpc_url: String,
pub bitcoin_rpc_user: SecretString,
pub bitcoin_rpc_password: SecretString,
pub mempool_api_host: Option<String>,
pub mempool_api_endpoint: Option<String>,
pub db_host: String,
pub db_port: usize,
pub db_user: SecretString,
pub db_password: SecretString,
pub db_name: String,
pub citrea_rpc_url: String,
pub citrea_light_client_prover_url: String,
pub citrea_chain_id: u32,
pub citrea_request_timeout: Option<Duration>,
pub bridge_contract_address: String,
pub header_chain_proof_path: Option<PathBuf>,
pub header_chain_proof_batch_size: u32,
pub security_council: SecurityCouncil,
pub verifier_endpoints: Option<Vec<String>>,
pub operator_endpoints: Option<Vec<String>>,
pub operator_reimbursement_address: Option<Address<NetworkUnchecked>>,
pub operator_collateral_funding_outpoint: Option<OutPoint>,
pub server_cert_path: PathBuf,
pub server_key_path: PathBuf,
pub client_cert_path: PathBuf,
pub client_key_path: PathBuf,
pub ca_cert_path: PathBuf,
pub client_verification: bool,
pub aggregator_cert_path: PathBuf,
pub telemetry: Option<TelemetryConfig>,
pub aggregator_verification_address: Option<Address>,
pub emergency_stop_encryption_public_key: Option<[u8; 32]>,
pub time_to_send_watchtower_challenge: u16,
pub grpc: GrpcLimits,
pub tx_sender_limits: TxSenderLimits,
}Expand description
Configuration options for any Clementine target (tests, binaries etc.).
Fields§
§protocol_paramset: &'static ProtocolParamsetProtocol paramset
Sourced from either a file or the environment, is set to REGTEST_PARAMSET in tests
Skipped in deserialization and replaced by either file/environment source. See crate::cli::get_cli_config
host: StringHost of the operator or the verifier
port: u16Port of the operator or the verifier
secret_key: SecretKeySecret key for the operator or the verifier.
operator_withdrawal_fee_sats: Option<Amount>Operator’s fee for withdrawal, in satoshis.
bitcoin_rpc_url: StringBitcoin remote procedure call URL.
bitcoin_rpc_user: SecretStringBitcoin RPC user.
bitcoin_rpc_password: SecretStringBitcoin RPC user password.
mempool_api_host: Option<String>mempool.space API host for retrieving the fee rate. If None, Bitcoin Core RPC will be used.
mempool_api_endpoint: Option<String>mempool.space API endpoint for retrieving the fee rate. If None, Bitcoin Core RPC will be used.
db_host: StringPostgreSQL database host address.
db_port: usizePostgreSQL database port.
db_user: SecretStringPostgreSQL database user name.
db_password: SecretStringPostgreSQL database user password.
db_name: StringPostgreSQL database name.
citrea_rpc_url: StringCitrea RPC URL.
citrea_light_client_prover_url: StringCitrea light client prover RPC URL.
citrea_chain_id: u32Citrea’s EVM Chain ID.
citrea_request_timeout: Option<Duration>Timeout in seconds for Citrea RPC calls.
bridge_contract_address: StringBridge contract address.
header_chain_proof_path: Option<PathBuf>§header_chain_proof_batch_size: u32Batch size of the header chain proofs
security_council: SecurityCouncilSecurity council.
verifier_endpoints: Option<Vec<String>>Verifier endpoints. For the aggregator only
operator_endpoints: Option<Vec<String>>Operator endpoint. For the aggregator only
operator_reimbursement_address: Option<Address<NetworkUnchecked>>Own operator’s reimbursement address.
operator_collateral_funding_outpoint: Option<OutPoint>Own operator’s collateral funding outpoint.
server_cert_path: PathBufPath to the server certificate file.
Required for all entities.
server_key_path: PathBufPath to the server key file.
client_cert_path: PathBufPath to the client certificate file. (used to communicate with other gRPC services)
Required for all entities. This is used to authenticate requests. Aggregator’s client certificate should match the expected aggregator certificate in other entities.
Aggregator needs this to call other entities, other entities need this to call their own internal endpoints.
client_key_path: PathBufPath to the client key file.
ca_cert_path: PathBufPath to the CA certificate file which is used to verify client certificates.
client_verification: boolWhether client certificates should be restricted to Aggregator and Self certificates.
Client certificates are always validated against the CA certificate according to mTLS regardless of this setting.
aggregator_cert_path: PathBufPath to the aggregator certificate file. (used to authenticate requests from aggregator)
Aggregator’s client cert should be equal to the this certificate.
telemetry: Option<TelemetryConfig>Telemetry configuration
aggregator_verification_address: Option<Address>The ECDSA address of the citrea/aggregator that will sign the withdrawal params after manual verification of the optimistic payout and operator’s withdrawal. Used for both an extra verification of aggregator’s identity and to force citrea to check withdrawal params manually during some time after launch.
emergency_stop_encryption_public_key: Option<[u8; 32]>The X25519 public key that will be used to encrypt the emergency stop message.
time_to_send_watchtower_challenge: u16Time to wait after a kickoff to send a watchtower challenge
grpc: GrpcLimitsgRPC client/server limits
tx_sender_limits: TxSenderLimitsHard cap on tx sender fee rate (sat/vB).
Implementations§
Source§impl BridgeConfig
impl BridgeConfig
Sourcepub fn get_num_required_nofn_sigs(&self, deposit_data: &DepositData) -> usize
pub fn get_num_required_nofn_sigs(&self, deposit_data: &DepositData) -> usize
Sourcepub fn get_num_required_operator_sigs(
&self,
deposit_data: &DepositData,
) -> usize
pub fn get_num_required_operator_sigs( &self, deposit_data: &DepositData, ) -> usize
Sourcepub fn get_num_required_nofn_sigs_per_kickoff(
&self,
deposit_data: &DepositData,
) -> usize
pub fn get_num_required_nofn_sigs_per_kickoff( &self, deposit_data: &DepositData, ) -> usize
Sourcepub fn get_num_required_operator_sigs_per_kickoff(
&self,
deposit_data: &DepositData,
) -> usize
pub fn get_num_required_operator_sigs_per_kickoff( &self, deposit_data: &DepositData, ) -> usize
Sourcepub fn get_num_kickoff_winternitz_pks(&self) -> usize
pub fn get_num_kickoff_winternitz_pks(&self) -> usize
Returns the total number of Winternitz public keys used in kickoff UTXOs for blockhash commits.
§Returns
The number of Winternitz public keys required for all rounds and kickoffs.
Sourcepub fn get_num_unspent_kickoff_sigs(&self) -> usize
pub fn get_num_unspent_kickoff_sigs(&self) -> usize
Returns the total number of unspent kickoff signatures needed from each operator.
§Returns
The number of unspent kickoff signatures required for all rounds from one operator.
Sourcepub fn get_num_challenge_ack_hashes(&self, deposit_data: &DepositData) -> usize
pub fn get_num_challenge_ack_hashes(&self, deposit_data: &DepositData) -> usize
Source§impl BridgeConfig
impl BridgeConfig
pub fn from_env() -> Result<Self, BridgeError>
Source§impl BridgeConfig
impl BridgeConfig
Sourcepub fn protocol_paramset(&self) -> &'static ProtocolParamset
pub fn protocol_paramset(&self) -> &'static ProtocolParamset
Get the protocol paramset defined by the paramset name.
Sourcepub fn try_parse_file(path: PathBuf) -> Result<Self, BridgeError>
pub fn try_parse_file(path: PathBuf) -> Result<Self, BridgeError>
Read contents of a TOML file and generate a BridgeConfig.
Sourcepub fn try_parse_from(input: String) -> Result<Self, BridgeError>
pub fn try_parse_from(input: String) -> Result<Self, BridgeError>
Try to parse a BridgeConfig from given TOML formatted string and
generate a BridgeConfig.
Sourcepub async fn check_general_requirements(&self) -> Result<(), BridgeError>
pub async fn check_general_requirements(&self) -> Result<(), BridgeError>
Check general requirements for the configuration irrespective of the network.
Sourcepub fn check_mainnet_requirements(
&self,
actor_type: Actors,
) -> Result<(), BridgeError>
pub fn check_mainnet_requirements( &self, actor_type: Actors, ) -> Result<(), BridgeError>
Checks various variables if they are correct for mainnet deployment.
Trait Implementations§
Source§impl Clone for BridgeConfig
impl Clone for BridgeConfig
Source§fn clone(&self) -> BridgeConfig
fn clone(&self) -> BridgeConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BridgeConfig
impl Debug for BridgeConfig
Source§impl Default for BridgeConfig
impl Default for BridgeConfig
Source§impl<'de> Deserialize<'de> for BridgeConfig
impl<'de> Deserialize<'de> for BridgeConfig
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>,
Auto Trait Implementations§
impl Freeze for BridgeConfig
impl RefUnwindSafe for BridgeConfig
impl Send for BridgeConfig
impl Sync for BridgeConfig
impl Unpin for BridgeConfig
impl UnwindSafe for BridgeConfig
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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>. Box<dyn Any> can
then be further downcast into Box<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>. Rc<Any> 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> DowncastSync for T
impl<T> DowncastSync for T
§impl<T, U> ExactFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> ExactFrom<T> for Uwhere
U: TryFrom<T>,
fn exact_from(value: T) -> U
§impl<T, U> ExactInto<U> for Twhere
U: ExactFrom<T>,
impl<T, U> ExactInto<U> for Twhere
U: ExactFrom<T>,
fn exact_into(self) -> U
§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> ⓘ
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, U> OverflowingInto<U> for Twhere
U: OverflowingFrom<T>,
impl<T, U> OverflowingInto<U> for Twhere
U: OverflowingFrom<T>,
fn overflowing_into(self) -> (U, bool)
§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_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, 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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T, U> RoundingInto<U> for Twhere
U: RoundingFrom<T>,
impl<T, U> RoundingInto<U> for Twhere
U: RoundingFrom<T>,
fn rounding_into(self, rm: RoundingMode) -> (U, Ordering)
§impl<T, U> SaturatingInto<U> for Twhere
U: SaturatingFrom<T>,
impl<T, U> SaturatingInto<U> for Twhere
U: SaturatingFrom<T>,
fn saturating_into(self) -> U
§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.