Struct Gateway
pub struct Gateway {Show 20 fields
pub(crate) federation_manager: Arc<RwLock<FederationManager>>,
pub(crate) mnemonic: Mnemonic,
pub(crate) lightning_mode: LightningMode,
pub(crate) state: Arc<RwLock<GatewayState>>,
pub(crate) client_builder: GatewayClientBuilder,
pub(crate) gateway_db: Database,
pub(crate) gateway_id: PublicKey,
pub(crate) versioned_api: SafeUrl,
pub(crate) listen: SocketAddr,
pub(crate) task_group: TaskGroup,
pub(crate) bcrypt_password_hash: Arc<HashParts>,
pub(crate) num_route_hints: u32,
pub(crate) network: Network,
pub(crate) chain_source: ChainSource,
pub(crate) default_routing_fees: PaymentFee,
pub(crate) default_transaction_fees: PaymentFee,
pub(crate) iroh_sk: SecretKey,
pub(crate) iroh_listen: SocketAddr,
pub(crate) iroh_dns: Option<SafeUrl>,
pub(crate) iroh_relays: Vec<SafeUrl>,
}Fields§
§federation_manager: Arc<RwLock<FederationManager>>§mnemonic: Mnemonic§lightning_mode: LightningMode§state: Arc<RwLock<GatewayState>>§client_builder: GatewayClientBuilder§gateway_db: Database§gateway_id: PublicKey§versioned_api: SafeUrl§listen: SocketAddr§task_group: TaskGroup§bcrypt_password_hash: Arc<HashParts>§num_route_hints: u32§network: Network§chain_source: ChainSource§default_routing_fees: PaymentFee§default_transaction_fees: PaymentFee§iroh_sk: SecretKey§iroh_listen: SocketAddr§iroh_dns: Option<SafeUrl>§iroh_relays: Vec<SafeUrl>Implementations§
§impl Gateway
impl Gateway
pub async fn new_with_custom_registry(
lightning_mode: LightningMode,
client_builder: GatewayClientBuilder,
listen: SocketAddr,
api_addr: SafeUrl,
bcrypt_password_hash: HashParts,
network: Network,
num_route_hints: u32,
gateway_db: Database,
gateway_state: GatewayState,
chain_source: ChainSource,
iroh_listen: SocketAddr,
) -> Result<Gateway, Error>
pub async fn new_with_custom_registry( lightning_mode: LightningMode, client_builder: GatewayClientBuilder, listen: SocketAddr, api_addr: SafeUrl, bcrypt_password_hash: HashParts, network: Network, num_route_hints: u32, gateway_db: Database, gateway_state: GatewayState, chain_source: ChainSource, iroh_listen: SocketAddr, ) -> Result<Gateway, Error>
Creates a new gateway but with a custom module registry provided inside
client_builder. Currently only used for testing.
pub async fn new_with_default_modules() -> Result<Gateway, Error>
pub async fn new_with_default_modules() -> Result<Gateway, Error>
Default function for creating a gateway with the Mint, Wallet, and
Gateway modules.
pub fn gateway_id(&self) -> PublicKey
pub fn versioned_api(&self) -> &SafeUrl
pub async fn dump_database(
dbtx: &mut DatabaseTransaction<'_>,
prefix_names: Vec<String>,
) -> BTreeMap<String, Box<dyn Serialize + Send>>
pub async fn dump_database( dbtx: &mut DatabaseTransaction<'_>, prefix_names: Vec<String>, ) -> BTreeMap<String, Box<dyn Serialize + Send>>
Reads and serializes structures from the Gateway’s database for the purpose for serializing to JSON for inspection.
pub async fn run(
self,
runtime: Arc<Runtime>,
) -> Result<TaskShutdownToken, Error>
pub async fn run( self, runtime: Arc<Runtime>, ) -> Result<TaskShutdownToken, Error>
Main entrypoint into the gateway that starts the client registration timer, loads the federation clients from the persisted config, begins listening for intercepted payments, and starts the webserver to service requests.
pub async fn handle_get_info(&self) -> Result<GatewayInfo, AdminGatewayError>
pub async fn handle_get_info(&self) -> Result<GatewayInfo, AdminGatewayError>
Returns information about the Gateway back to the client when requested via the webserver.
pub async fn handle_get_federation_config(
&self,
federation_id_or: Option<FederationId>,
) -> Result<GatewayFedConfig, AdminGatewayError>
pub async fn handle_get_federation_config( &self, federation_id_or: Option<FederationId>, ) -> Result<GatewayFedConfig, AdminGatewayError>
If the Gateway is connected to the Lightning node, returns the
ClientConfig for each federation that the Gateway is connected to.
pub async fn handle_address_msg(
&self,
payload: DepositAddressPayload,
) -> Result<Address, AdminGatewayError>
pub async fn handle_address_msg( &self, payload: DepositAddressPayload, ) -> Result<Address, AdminGatewayError>
Returns a Bitcoin deposit on-chain address for pegging in Bitcoin for a specific connected federation.
pub async fn handle_withdraw_msg(
&self,
payload: WithdrawPayload,
) -> Result<WithdrawResponse, AdminGatewayError>
pub async fn handle_withdraw_msg( &self, payload: WithdrawPayload, ) -> Result<WithdrawResponse, AdminGatewayError>
Returns a Bitcoin TXID from a peg-out transaction for a specific connected federation.
pub async fn handle_connect_federation(
&self,
payload: ConnectFedPayload,
) -> Result<FederationInfo, AdminGatewayError>
pub async fn handle_connect_federation( &self, payload: ConnectFedPayload, ) -> Result<FederationInfo, AdminGatewayError>
Handles a connection request to join a new federation. The gateway will download the federation’s client configuration, construct a new client, registers, the gateway with the federation, and persists the necessary config to reconstruct the client when restarting the gateway.
pub async fn handle_leave_federation(
&self,
payload: LeaveFedPayload,
) -> Result<FederationInfo, AdminGatewayError>
pub async fn handle_leave_federation( &self, payload: LeaveFedPayload, ) -> Result<FederationInfo, AdminGatewayError>
Handle a request to have the Gateway leave a federation. The Gateway will request the federation to remove the registration record and the gateway will remove the configuration needed to construct the federation client.
pub async fn handle_backup_msg(
&self,
__arg1: BackupPayload,
) -> Result<(), AdminGatewayError>
pub async fn handle_backup_msg( &self, __arg1: BackupPayload, ) -> Result<(), AdminGatewayError>
Handles a request for the gateway to backup a connected federation’s ecash.
pub async fn handle_mnemonic_msg(
&self,
) -> Result<MnemonicResponse, AdminGatewayError>
pub async fn handle_mnemonic_msg( &self, ) -> Result<MnemonicResponse, AdminGatewayError>
Handles an authenticated request for the gateway’s mnemonic. This also returns a vector of federations that are not using the mnemonic backup strategy.
pub async fn handle_set_fees_msg(
&self,
__arg1: SetFeesPayload,
) -> Result<(), AdminGatewayError>
pub async fn handle_set_fees_msg( &self, __arg1: SetFeesPayload, ) -> Result<(), AdminGatewayError>
Handles a request to change the lightning or transaction fees for all
federations or a federation specified by the FederationId.
pub async fn handle_get_ln_onchain_address_msg(
&self,
) -> Result<Address, AdminGatewayError>
pub async fn handle_get_ln_onchain_address_msg( &self, ) -> Result<Address, AdminGatewayError>
Generates an onchain address to fund the gateway’s lightning node.
pub async fn handle_open_channel_msg(
&self,
payload: OpenChannelRequest,
) -> Result<Txid, AdminGatewayError>
pub async fn handle_open_channel_msg( &self, payload: OpenChannelRequest, ) -> Result<Txid, AdminGatewayError>
Instructs the Gateway’s Lightning node to open a channel to a peer
specified by pubkey.
pub async fn handle_close_channels_with_peer_msg(
&self,
payload: CloseChannelsWithPeerRequest,
) -> Result<CloseChannelsWithPeerResponse, AdminGatewayError>
pub async fn handle_close_channels_with_peer_msg( &self, payload: CloseChannelsWithPeerRequest, ) -> Result<CloseChannelsWithPeerResponse, AdminGatewayError>
Instructs the Gateway’s Lightning node to close all channels with a peer
specified by pubkey.
pub async fn handle_list_channels_msg(
&self,
) -> Result<Vec<ChannelInfo>, AdminGatewayError>
pub async fn handle_list_channels_msg( &self, ) -> Result<Vec<ChannelInfo>, AdminGatewayError>
Returns a list of Lightning network channels from the Gateway’s Lightning node.
pub async fn handle_send_onchain_msg(
&self,
payload: SendOnchainRequest,
) -> Result<Txid, AdminGatewayError>
pub async fn handle_send_onchain_msg( &self, payload: SendOnchainRequest, ) -> Result<Txid, AdminGatewayError>
Send funds from the gateway’s lightning node on-chain wallet.
pub async fn handle_recheck_address_msg(
&self,
payload: DepositAddressRecheckPayload,
) -> Result<(), AdminGatewayError>
pub async fn handle_recheck_address_msg( &self, payload: DepositAddressRecheckPayload, ) -> Result<(), AdminGatewayError>
Trigger rechecking for deposits on an address
pub async fn handle_get_balances_msg(
&self,
) -> Result<GatewayBalances, AdminGatewayError>
pub async fn handle_get_balances_msg( &self, ) -> Result<GatewayBalances, AdminGatewayError>
Returns the ecash, lightning, and onchain balances for the gateway and the gateway’s lightning node.
pub async fn handle_spend_ecash_msg( &self, payload: SpendEcashPayload, ) -> Result<SpendEcashResponse, AdminGatewayError>
pub async fn handle_receive_ecash_msg(
&self,
payload: ReceiveEcashPayload,
) -> Result<ReceiveEcashResponse, PublicGatewayError>
pub async fn handle_receive_ecash_msg( &self, payload: ReceiveEcashPayload, ) -> Result<ReceiveEcashResponse, PublicGatewayError>
Handles a request to receive ecash into the gateway.
pub async fn handle_shutdown_msg(
&self,
task_group: TaskGroup,
) -> Result<(), AdminGatewayError>
pub async fn handle_shutdown_msg( &self, task_group: TaskGroup, ) -> Result<(), AdminGatewayError>
Instructs the gateway to shutdown, but only after all incoming payments have been handlded.
pub async fn handle_payment_log_msg(
&self,
__arg1: PaymentLogPayload,
) -> Result<PaymentLogResponse, AdminGatewayError>
pub async fn handle_payment_log_msg( &self, __arg1: PaymentLogPayload, ) -> Result<PaymentLogResponse, AdminGatewayError>
Queries the client log for payment events and returns to the user.
pub async fn handle_payment_summary_msg(
&self,
__arg1: PaymentSummaryPayload,
) -> Result<PaymentSummaryResponse, AdminGatewayError>
pub async fn handle_payment_summary_msg( &self, __arg1: PaymentSummaryPayload, ) -> Result<PaymentSummaryResponse, AdminGatewayError>
Computes the 24 hour payment summary statistics for this gateway. Combines the LNv1 and LNv2 stats together.
pub async fn handle_get_invoice_msg(
&self,
payload: GetInvoiceRequest,
) -> Result<Option<GetInvoiceResponse>, AdminGatewayError>
pub async fn handle_get_invoice_msg( &self, payload: GetInvoiceRequest, ) -> Result<Option<GetInvoiceResponse>, AdminGatewayError>
Retrieves an invoice by the payment hash if it exists, otherwise returns
None.
pub async fn handle_list_transactions_msg( &self, payload: ListTransactionsPayload, ) -> Result<ListTransactionsResponse, AdminGatewayError>
pub async fn handle_create_offer_for_operator_msg(
&self,
payload: CreateOfferPayload,
) -> Result<CreateOfferResponse, AdminGatewayError>
pub async fn handle_create_offer_for_operator_msg( &self, payload: CreateOfferPayload, ) -> Result<CreateOfferResponse, AdminGatewayError>
Creates a BOLT12 offer using the gateway’s lightning node
pub async fn handle_pay_offer_for_operator_msg(
&self,
payload: PayOfferPayload,
) -> Result<PayOfferResponse, AdminGatewayError>
pub async fn handle_pay_offer_for_operator_msg( &self, payload: PayOfferPayload, ) -> Result<PayOfferResponse, AdminGatewayError>
Pays a BOLT12 offer using the gateway’s lightning node
pub async fn select_client(
&self,
federation_id: FederationId,
) -> Result<Spanned<Arc<ClientHandle>>, FederationNotConnected>
pub async fn select_client( &self, federation_id: FederationId, ) -> Result<Spanned<Arc<ClientHandle>>, FederationNotConnected>
Retrieves a ClientHandleArc from the Gateway’s in memory structures
that keep track of available clients, given a federation_id.
pub async fn get_lightning_context(
&self,
) -> Result<LightningContext, LightningRpcError>
pub async fn get_lightning_context( &self, ) -> Result<LightningContext, LightningRpcError>
Checks the Gateway’s current state and returns the proper
LightningContext if it is available. Sometimes the lightning node
will not be connected and this will return an error.
pub async fn unannounce_from_all_federations(&self)
pub async fn unannounce_from_all_federations(&self)
Iterates through all of the federations the gateway is registered with and requests to remove the registration record.
§impl Gateway
impl Gateway
pub async fn routing_info_v2(
&self,
federation_id: &FederationId,
) -> Result<Option<RoutingInfo>, PublicGatewayError>
pub async fn routing_info_v2( &self, federation_id: &FederationId, ) -> Result<Option<RoutingInfo>, PublicGatewayError>
Returns payment information that LNv2 clients can use to instruct this Gateway to pay an invoice or receive a payment.
pub async fn create_invoice_via_lnrpc_v2(
&self,
payment_hash: Hash,
amount: Amount,
description: Bolt11InvoiceDescription,
expiry_time: u32,
) -> Result<Bolt11Invoice, LightningRpcError>
pub async fn create_invoice_via_lnrpc_v2( &self, payment_hash: Hash, amount: Amount, description: Bolt11InvoiceDescription, expiry_time: u32, ) -> Result<Bolt11Invoice, LightningRpcError>
Retrieves a BOLT11 invoice from the connected Lightning node with a
specific payment_hash.
pub async fn verify_bolt11_preimage_v2( &self, payment_hash: Hash, wait: bool, ) -> Result<VerifyResponse, String>
pub async fn get_registered_incoming_contract_and_client_v2(
&self,
payment_image: PaymentImage,
amount_msats: u64,
) -> Result<(IncomingContract, Arc<ClientHandle>), PublicGatewayError>
pub async fn get_registered_incoming_contract_and_client_v2( &self, payment_image: PaymentImage, amount_msats: u64, ) -> Result<(IncomingContract, Arc<ClientHandle>), PublicGatewayError>
Retrieves the persisted CreateInvoicePayload from the database
specified by the payment_hash and the ClientHandleArc specified
by the payload’s federation_id.
Trait Implementations§
§impl IGatewayClientV1 for Gateway
impl IGatewayClientV1 for Gateway
§fn verify_preimage_authentication<'life0, 'async_trait>(
&'life0 self,
payment_hash: Hash,
preimage_auth: Hash,
contract: OutgoingContractAccount,
) -> Pin<Box<dyn Future<Output = Result<(), OutgoingPaymentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn verify_preimage_authentication<'life0, 'async_trait>(
&'life0 self,
payment_hash: Hash,
preimage_auth: Hash,
contract: OutgoingContractAccount,
) -> Pin<Box<dyn Future<Output = Result<(), OutgoingPaymentError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
preimage_auth is the same as the
preimage_auth that initiated the payment. Read more§fn verify_pruned_invoice<'life0, 'async_trait>(
&'life0 self,
payment_data: PaymentData,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn verify_pruned_invoice<'life0, 'async_trait>(
&'life0 self,
payment_data: PaymentData,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn get_routing_fees<'life0, 'async_trait>(
&'life0 self,
federation_id: FederationId,
) -> Pin<Box<dyn Future<Output = Option<RoutingFees>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn get_routing_fees<'life0, 'async_trait>(
&'life0 self,
federation_id: FederationId,
) -> Pin<Box<dyn Future<Output = Option<RoutingFees>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn get_client<'life0, 'life1, 'async_trait>(
&'life0 self,
federation_id: &'life1 FederationId,
) -> Pin<Box<dyn Future<Output = Option<Spanned<Arc<ClientHandle>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
fn get_client<'life0, 'life1, 'async_trait>(
&'life0 self,
federation_id: &'life1 FederationId,
) -> Pin<Box<dyn Future<Output = Option<Spanned<Arc<ClientHandle>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
fn get_client_for_invoice<'life0, 'async_trait>(
&'life0 self,
payment_data: PaymentData,
) -> Pin<Box<dyn Future<Output = Option<Spanned<Arc<ClientHandle>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn pay<'life0, 'async_trait>(
&'life0 self,
payment_data: PaymentData,
max_delay: u64,
max_fee: Amount,
) -> Pin<Box<dyn Future<Output = Result<PayInvoiceResponse, LightningRpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn pay<'life0, 'async_trait>(
&'life0 self,
payment_data: PaymentData,
max_delay: u64,
max_fee: Amount,
) -> Pin<Box<dyn Future<Output = Result<PayInvoiceResponse, LightningRpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn complete_htlc<'life0, 'async_trait>(
&'life0 self,
htlc: InterceptPaymentResponse,
) -> Pin<Box<dyn Future<Output = Result<(), LightningRpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn complete_htlc<'life0, 'async_trait>(
&'life0 self,
htlc: InterceptPaymentResponse,
) -> Pin<Box<dyn Future<Output = Result<(), LightningRpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn is_lnv2_direct_swap<'life0, 'async_trait>(
&'life0 self,
payment_hash: Hash,
amount: Amount,
) -> Pin<Box<dyn Future<Output = Result<Option<(IncomingContract, Arc<ClientHandle>)>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn is_lnv2_direct_swap<'life0, 'async_trait>(
&'life0 self,
payment_hash: Hash,
amount: Amount,
) -> Pin<Box<dyn Future<Output = Result<Option<(IncomingContract, Arc<ClientHandle>)>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
IncomingContract§impl IGatewayClientV2 for Gateway
impl IGatewayClientV2 for Gateway
§fn complete_htlc<'life0, 'async_trait>(
&'life0 self,
htlc_response: InterceptPaymentResponse,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn complete_htlc<'life0, 'async_trait>(
&'life0 self,
htlc_response: InterceptPaymentResponse,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn is_direct_swap<'life0, 'life1, 'async_trait>(
&'life0 self,
invoice: &'life1 Bolt11Invoice,
) -> Pin<Box<dyn Future<Output = Result<Option<(IncomingContract, Arc<ClientHandle>)>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
fn is_direct_swap<'life0, 'life1, 'async_trait>(
&'life0 self,
invoice: &'life1 Bolt11Invoice,
) -> Pin<Box<dyn Future<Output = Result<Option<(IncomingContract, Arc<ClientHandle>)>, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
§fn pay<'life0, 'async_trait>(
&'life0 self,
invoice: Bolt11Invoice,
max_delay: u64,
max_fee: Amount,
) -> Pin<Box<dyn Future<Output = Result<[u8; 32], LightningRpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
fn pay<'life0, 'async_trait>(
&'life0 self,
invoice: Bolt11Invoice,
max_delay: u64,
max_fee: Amount,
) -> Pin<Box<dyn Future<Output = Result<[u8; 32], LightningRpcError>> + Send + 'async_trait>>where
'life0: 'async_trait,
Gateway: 'async_trait,
§fn min_contract_amount<'life0, 'life1, 'async_trait>(
&'life0 self,
federation_id: &'life1 FederationId,
amount: u64,
) -> Pin<Box<dyn Future<Output = Result<Amount, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
fn min_contract_amount<'life0, 'life1, 'async_trait>(
&'life0 self,
federation_id: &'life1 FederationId,
amount: u64,
) -> Pin<Box<dyn Future<Output = Result<Amount, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
§fn is_lnv1_invoice<'life0, 'life1, 'async_trait>(
&'life0 self,
invoice: &'life1 Bolt11Invoice,
) -> Pin<Box<dyn Future<Output = Option<Spanned<Arc<ClientHandle>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
fn is_lnv1_invoice<'life0, 'life1, 'async_trait>(
&'life0 self,
invoice: &'life1 Bolt11Invoice,
) -> Pin<Box<dyn Future<Output = Option<Spanned<Arc<ClientHandle>>>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Gateway: 'async_trait,
§fn relay_lnv1_swap<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
client: &'life1 Arc<ClientHandle>,
invoice: &'life2 Bolt11Invoice,
) -> Pin<Box<dyn Future<Output = Result<FinalReceiveState, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gateway: 'async_trait,
fn relay_lnv1_swap<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
client: &'life1 Arc<ClientHandle>,
invoice: &'life2 Bolt11Invoice,
) -> Pin<Box<dyn Future<Output = Result<FinalReceiveState, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Gateway: 'async_trait,
OutgoingContract to an LNv1
IncomingContractAuto Trait Implementations§
impl Freeze for Gateway
impl !RefUnwindSafe for Gateway
impl Send for Gateway
impl Sync for Gateway
impl Unpin for Gateway
impl !UnwindSafe for Gateway
Blanket Implementations§
§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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for 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> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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> 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<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> 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.