pub struct GrpcClient { /* private fields */ }tonic only.Expand description
Client for the Node RPC API using gRPC.
If the tonic feature is enabled, this client will use a tonic::transport::Channel to
communicate with the node. In this case the connection will be established lazily when the
first request is made.
If the web-tonic feature is enabled, this client will use a tonic_web_wasm_client::Client
to communicate with the node.
In both cases, the GrpcClient depends on the types inside the generated module, which
are generated by the build script and also depend on the target architecture.
Implementations§
Source§impl GrpcClient
impl GrpcClient
Sourcepub fn new(endpoint: &Endpoint, timeout_ms: u64) -> GrpcClient
pub fn new(endpoint: &Endpoint, timeout_ms: u64) -> GrpcClient
Returns a new instance of GrpcClient that’ll do calls to the provided Endpoint
with the given timeout in milliseconds.
Sourcepub fn with_max_retries(self, max_retries: u32) -> Self
pub fn with_max_retries(self, max_retries: u32) -> Self
Sets the maximum number of retry attempts for rate-limited or transiently unavailable
requests. Defaults to 4.
Sourcepub fn with_retry_interval_ms(self, retry_interval_ms: u64) -> Self
pub fn with_retry_interval_ms(self, retry_interval_ms: u64) -> Self
Sets the fallback retry interval in milliseconds, used when the server does not provide
a retry-after header. Defaults to 100 ms.
Sourcepub fn with_bearer_auth(self, token: String) -> Self
pub fn with_bearer_auth(self, token: String) -> Self
Attaches a authorization: Bearer <token> header to every outbound gRPC call made
by this client, alongside the standard accept header.
Intended for connecting to a Miden node through an authenticating gateway
(e.g. miden-testnet.eu-central-8.gateway.fm) that rate-limits unauthenticated
traffic. Without an auth mechanism on the client side, callers would have no way
to supply the token the gateway requires.
Calling this method twice overwrites the earlier token.
Validation of the token against
AsciiMetadataValue is deferred to
connection time (printable ASCII plus tab only — HeaderValue::from_str semantics):
invalid tokens surface as
RpcError::ConnectionError on the first
request, so CR/LF header-injection attempts are rejected.
§Example
let endpoint = Endpoint::new("https".into(), "node.example".into(), Some(443));
let client = GrpcClient::new(&endpoint, 10_000).with_bearer_auth("<api-key>".into());Sourcepub async fn get_status_unversioned(&self) -> Result<RpcStatusInfo, RpcError>
pub async fn get_status_unversioned(&self) -> Result<RpcStatusInfo, RpcError>
Fetches RPC status without injecting an Accept header.
This instantiates a separate API client without the Accept interceptor, so it does not
reuse the primary gRPC client. Any caller-supplied
with_bearer_auth token is still forwarded so gateway
authentication keeps working.
Trait Implementations§
Source§impl NodeRpcClient for GrpcClient
impl NodeRpcClient for GrpcClient
Source§fn has_genesis_commitment(&self) -> Option<Word>
fn has_genesis_commitment(&self) -> Option<Word>
Sets the genesis commitment for the client. If the client is already connected, it will be updated to use the new commitment on subsequent requests. If the client is not connected, the commitment will be stored and used when the client connects. If the genesis commitment is already set, this method does nothing.
Source§fn get_account<'life0, 'async_trait>(
&'life0 self,
account_id: AccountId,
request: GetAccountRequest,
) -> Pin<Box<dyn Future<Output = Result<(BlockNumber, AccountProof), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_account<'life0, 'async_trait>(
&'life0 self,
account_id: AccountId,
request: GetAccountRequest,
) -> Pin<Box<dyn Future<Output = Result<(BlockNumber, AccountProof), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sends a GetAccount request to the Miden node, and extracts the AccountProof
from the response, as well as the block number that it was retrieved for.
§Errors
This function will return an error if:
- The requested Account isn’t returned by the node.
- There was an error sending the request to the node.
- The answer had a
Nonefor one of the expected fields. - There is an error during storage deserialization.
Source§fn sync_notes<'life0, 'life1, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
note_tags: &'life1 BTreeSet<NoteTag>,
) -> Pin<Box<dyn Future<Output = Result<Vec<NoteSyncBlock>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn sync_notes<'life0, 'life1, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
note_tags: &'life1 BTreeSet<NoteTag>,
) -> Pin<Box<dyn Future<Output = Result<Vec<NoteSyncBlock>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Sends one or more SyncNoteRequests to the node and merges the responses into a list of
NoteSyncBlocks.
Chunks note_tags by RpcLimits::note_tags_limit and paginates each chunk across the
requested block range.
Source§fn sync_transactions<'life0, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
account_ids: Vec<AccountId>,
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionRecord>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sync_transactions<'life0, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
account_ids: Vec<AccountId>,
) -> Pin<Box<dyn Future<Output = Result<Vec<TransactionRecord>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sends one or more SyncTransactions requests to the node and concatenates the responses
into a flat list of TransactionRecords.
Chunks account_ids by RpcLimits::account_ids_limit and paginates each chunk across the
requested block range.
Source§fn set_genesis_commitment<'life0, 'async_trait>(
&'life0 self,
commitment: Word,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_genesis_commitment<'life0, 'async_trait>(
&'life0 self,
commitment: Word,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn submit_proven_transaction<'life0, 'async_trait>(
&'life0 self,
proven_transaction: ProvenTransaction,
transaction_inputs: TransactionInputs,
) -> Pin<Box<dyn Future<Output = Result<BlockNumber, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_proven_transaction<'life0, 'async_trait>(
&'life0 self,
proven_transaction: ProvenTransaction,
transaction_inputs: TransactionInputs,
) -> Pin<Box<dyn Future<Output = Result<BlockNumber, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/SubmitProvenTransaction RPC endpoint. Read moreSource§fn submit_proven_batch<'life0, 'async_trait>(
&'life0 self,
proven_batch: ProvenBatch,
proposed_batch: ProposedBatch,
transaction_inputs: Vec<TransactionInputs>,
) -> Pin<Box<dyn Future<Output = Result<BlockNumber, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_proven_batch<'life0, 'async_trait>(
&'life0 self,
proven_batch: ProvenBatch,
proposed_batch: ProposedBatch,
transaction_inputs: Vec<TransactionInputs>,
) -> Pin<Box<dyn Future<Output = Result<BlockNumber, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
ProposedBatch and the list of
TransactionInputs (one per transaction, matching the ordering of the batch), sends
the batch to the node for inclusion in a future block using the /SubmitProvenBatch
RPC endpoint. All transactions in the batch must build on the current mempool state
following normal transaction submission rules. Read moreSource§fn get_block_header_by_number<'life0, 'async_trait>(
&'life0 self,
block_num: Option<BlockNumber>,
include_mmr_proof: bool,
) -> Pin<Box<dyn Future<Output = Result<(BlockHeader, Option<MmrProof>), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_header_by_number<'life0, 'async_trait>(
&'life0 self,
block_num: Option<BlockNumber>,
include_mmr_proof: bool,
) -> Pin<Box<dyn Future<Output = Result<(BlockHeader, Option<MmrProof>), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/GetBlockHeaderByNumber endpoint.
If include_mmr_proof is set to true and the function returns an Ok, the second value
of the return tuple should always be Some(MmrProof). Read moreSource§fn get_notes_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
note_ids: &'life1 [NoteId],
) -> Pin<Box<dyn Future<Output = Result<Vec<FetchedNote>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_notes_by_id<'life0, 'life1, 'async_trait>(
&'life0 self,
note_ids: &'life1 [NoteId],
) -> Pin<Box<dyn Future<Output = Result<Vec<FetchedNote>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn sync_chain_mmr<'life0, 'async_trait>(
&'life0 self,
current_block_height: BlockNumber,
upper_bound: SyncTarget,
) -> Pin<Box<dyn Future<Output = Result<ChainMmrInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sync_chain_mmr<'life0, 'async_trait>(
&'life0 self,
current_block_height: BlockNumber,
upper_bound: SyncTarget,
) -> Pin<Box<dyn Future<Output = Result<ChainMmrInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/SyncChainMmr RPC endpoint. Read moreSource§fn sync_nullifiers<'life0, 'life1, 'async_trait>(
&'life0 self,
prefixes: &'life1 [u16],
block_from: BlockNumber,
block_to: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<Vec<NullifierUpdate>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn sync_nullifiers<'life0, 'life1, 'async_trait>(
&'life0 self,
prefixes: &'life1 [u16],
block_from: BlockNumber,
block_to: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<Vec<NullifierUpdate>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
/SyncNullifiers RPC endpoint. Read moreSource§fn get_block_by_number<'life0, 'async_trait>(
&'life0 self,
block_num: BlockNumber,
include_proof: bool,
) -> Pin<Box<dyn Future<Output = Result<ProvenBlock, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_by_number<'life0, 'async_trait>(
&'life0 self,
block_num: BlockNumber,
include_proof: bool,
) -> Pin<Box<dyn Future<Output = Result<ProvenBlock, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/GetBlockByNumber RPC endpoint. Read moreSource§fn get_note_script_by_root<'life0, 'async_trait>(
&'life0 self,
root: Word,
) -> Pin<Box<dyn Future<Output = Result<Option<NoteScript>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_note_script_by_root<'life0, 'async_trait>(
&'life0 self,
root: Word,
) -> Pin<Box<dyn Future<Output = Result<Option<NoteScript>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
None if the node has no script
registered for that root. Read moreSource§fn sync_storage_maps<'life0, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
account_id: AccountId,
) -> Pin<Box<dyn Future<Output = Result<StorageMapInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sync_storage_maps<'life0, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
account_id: AccountId,
) -> Pin<Box<dyn Future<Output = Result<StorageMapInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/SyncStorageMaps RPC endpoint. Read moreSource§fn sync_account_vault<'life0, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
account_id: AccountId,
) -> Pin<Box<dyn Future<Output = Result<AccountVaultInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn sync_account_vault<'life0, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
account_id: AccountId,
) -> Pin<Box<dyn Future<Output = Result<AccountVaultInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/SyncAccountVault RPC endpoint. Read moreSource§fn get_network_id<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<NetworkId, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_network_id<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<NetworkId, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_rpc_limits<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RpcLimits, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_rpc_limits<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RpcLimits, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn has_rpc_limits(&self) -> Option<RpcLimits>
fn has_rpc_limits(&self) -> Option<RpcLimits>
Source§fn set_rpc_limits<'life0, 'async_trait>(
&'life0 self,
limits: RpcLimits,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_rpc_limits<'life0, 'async_trait>(
&'life0 self,
limits: RpcLimits,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_status_unversioned<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RpcStatusInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_status_unversioned<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<RpcStatusInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_network_note_status<'life0, 'async_trait>(
&'life0 self,
note_id: NoteId,
) -> Pin<Box<dyn Future<Output = Result<NetworkNoteStatusInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_network_note_status<'life0, 'async_trait>(
&'life0 self,
note_id: NoteId,
) -> Pin<Box<dyn Future<Output = Result<NetworkNoteStatusInfo, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_account_details<'life0, 'async_trait>(
&'life0 self,
account_id: AccountId,
) -> Pin<Box<dyn Future<Output = Result<Option<Account>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_account_details<'life0, 'async_trait>(
&'life0 self,
account_id: AccountId,
) -> Pin<Box<dyn Future<Output = Result<Option<Account>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
/GetAccount endpoint,
and then resolves oversized vault and storage map entries via the SyncVault and
SyncStorageMap endpoints when needed. Read moreSource§fn sync_notes_with_details<'life0, 'life1, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
note_tags: &'life1 BTreeSet<NoteTag>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<NoteSyncBlock>, BTreeMap<NoteId, SyncedNoteDetails>), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn sync_notes_with_details<'life0, 'life1, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
note_tags: &'life1 BTreeSet<NoteTag>,
) -> Pin<Box<dyn Future<Output = Result<(Vec<NoteSyncBlock>, BTreeMap<NoteId, SyncedNoteDetails>), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
NodeRpcClient::sync_notes for the requested range, then makes a single
NodeRpcClient::get_notes_by_id call to fetch full note bodies (scripts, assets,
recipient) for public notes and attachment content for private notes that carry
attachments. Read moreSource§fn resolve_oversize_vault<'life0, 'life1, 'async_trait>(
&'life0 self,
account_id: AccountId,
block_to: BlockNumber,
details: &'life1 mut AccountDetails,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resolve_oversize_vault<'life0, 'life1, 'async_trait>(
&'life0 self,
account_id: AccountId,
block_to: BlockNumber,
details: &'life1 mut AccountDetails,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
too_many_assets, by
querying NodeRpcClient::sync_account_vault over [GENESIS, block_to]. No-op when
the flag isn’t set.Source§fn resolve_oversize_storage_maps<'life0, 'life1, 'async_trait>(
&'life0 self,
account_id: AccountId,
block_to: BlockNumber,
details: &'life1 mut AccountDetails,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resolve_oversize_storage_maps<'life0, 'life1, 'async_trait>(
&'life0 self,
account_id: AccountId,
block_to: BlockNumber,
details: &'life1 mut AccountDetails,
) -> Pin<Box<dyn Future<Output = Result<(), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
too_many_entries, by querying
NodeRpcClient::sync_storage_maps over [GENESIS, block_to]. No-op when no map
has the flag set.Source§fn get_nullifier_commit_heights<'life0, 'async_trait>(
&'life0 self,
requested_nullifiers: BTreeSet<Nullifier>,
block_from: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<BTreeMap<Nullifier, Option<BlockNumber>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_nullifier_commit_heights<'life0, 'async_trait>(
&'life0 self,
requested_nullifiers: BTreeSet<Nullifier>,
block_from: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<BTreeMap<Nullifier, Option<BlockNumber>>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
None is returned.
The block_num parameter is the block number to start the search from (inclusive). Read moreSource§fn get_public_note_records<'life0, 'life1, 'async_trait>(
&'life0 self,
note_ids: &'life1 [NoteId],
current_timestamp: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Vec<InputNoteRecord>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_public_note_records<'life0, 'life1, 'async_trait>(
&'life0 self,
note_ids: &'life1 [NoteId],
current_timestamp: Option<u64>,
) -> Pin<Box<dyn Future<Output = Result<Vec<InputNoteRecord>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
NoteId and builds InputNoteRecords
with it. If a note is not found or it’s private, it is ignored and will not be included
in the returned list. Read moreSource§fn get_block_header_with_proof<'life0, 'async_trait>(
&'life0 self,
block_num: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<(BlockHeader, MmrProof), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_block_header_with_proof<'life0, 'async_trait>(
&'life0 self,
block_num: BlockNumber,
) -> Pin<Box<dyn Future<Output = Result<(BlockHeader, MmrProof), RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !Freeze for GrpcClient
impl !RefUnwindSafe for GrpcClient
impl !UnwindSafe for GrpcClient
impl Send for GrpcClient
impl Sync for GrpcClient
impl Unpin for GrpcClient
impl UnsafeUnpin for GrpcClient
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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::RequestSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§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 moreSource§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