pub struct VerifyingRpcClient<T>(/* private fields */);Expand description
A NodeRpcClient wrapper that verifies that responses correspond to the method’s arguments,
rejecting mismatches with RpcError::InvalidResponse:
get_block_header_by_numberandget_block_by_number: the returned block’s number must match the requested one.get_notes_by_id: every returned note’s ID must have been requested.sync_notes: every returned note’s tag must have been requested.sync_nullifiers: every returned nullifier’s prefix must have been requested.get_account: when the state at a specific block was requested, the response must be for that block.get_note_script_by_root: a returned script’s root must match the requested one.sync_transactions: every returned transaction record’s account ID must have been requested.
All other methods delegate to the wrapped client unchanged.
Implementations§
Source§impl<T: NodeRpcClient> VerifyingRpcClient<T>
impl<T: NodeRpcClient> VerifyingRpcClient<T>
Trait Implementations§
Source§impl<T: NodeRpcClient> NodeRpcClient for VerifyingRpcClient<T>
impl<T: NodeRpcClient> NodeRpcClient for VerifyingRpcClient<T>
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,
Sets the genesis commitment for the client and reconnects to the node providing the
genesis commitment in the request headers. If the genesis commitment is already set,
this method does nothing.
Source§fn has_genesis_commitment(&self) -> Option<Word>
fn has_genesis_commitment(&self) -> Option<Word>
Returns the genesis commitment if it has been set, without fetching from the node.
Source§fn get_transaction_encryption_key<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<AttestedTransactionEncryptionKey, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_transaction_encryption_key<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<AttestedTransactionEncryptionKey, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Fetches the validator set’s transaction encryption key using the
/GetTransactionEncryptionKey endpoint. Read moreSource§fn submit_proven_transaction<'life0, 'async_trait>(
&'life0 self,
proven_transaction: ProvenTransaction,
sealed_transaction_inputs: SealedTransactionInputs,
) -> 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,
sealed_transaction_inputs: SealedTransactionInputs,
) -> Pin<Box<dyn Future<Output = Result<BlockNumber, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Given a Proven Transaction, send it to the node for it to be included in a future block
using the
/SubmitProvenTransaction RPC endpoint. Read moreSource§fn submit_proven_batch<'life0, 'async_trait>(
&'life0 self,
proven_batch: ProvenBatch,
proposed_batch: ProposedBatch,
sealed_transaction_inputs: Vec<SealedTransactionInputs>,
) -> 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,
sealed_transaction_inputs: Vec<SealedTransactionInputs>,
) -> Pin<Box<dyn Future<Output = Result<BlockNumber, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Given a Proven Batch together with the corresponding
ProposedBatch and the list of
SealedTransactionInputs (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,
Given a block number, fetches the block header corresponding to that height from the node
using the
/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_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,
Given a block number, fetches the block corresponding to that height from the node using
the
/GetBlockByNumber RPC endpoint. 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,
Fetches the MMR delta for a given block range using the
/SyncChainMmr RPC endpoint. Read moreSource§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<SyncNotesBlock>, 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<SyncNotesBlock>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetches notes related to the specified tags using the
/SyncNotes RPC endpoint,
paginating over the full block range and returning, in block-number order, every block in
that range that contains at least one note matching the requested tags. Read moreSource§fn sync_nullifiers<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: &'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,
prefix: &'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,
Fetches the nullifiers corresponding to a list of prefixes using the
/SyncNullifiers RPC endpoint. Read moreSource§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,
Fetches the account from the node, using the
/GetAccount 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,
Fetches the note script with the specified root, returning
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,
Fetches storage map updates for specified account and storage slots within a block range,
using the
/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,
Fetches account vault updates for specified account within a block range,
using the
/SyncAccountVault RPC endpoint. Read moreSource§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,
Fetches transaction records for specific accounts within a block range using the
/SyncTransactions 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,
Fetches the network ID of the node.
Errors: Read more
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,
Fetches the RPC limits configured on the node. Read more
Source§fn has_rpc_limits(&self) -> Option<RpcLimits>
fn has_rpc_limits(&self) -> Option<RpcLimits>
Returns the RPC limits if they have been set, without fetching from the node.
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,
Sets the RPC limits internally to be used by the client.
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,
Fetches the RPC status without requiring Accept header validation. Read more
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,
Fetches the status of a specific network note ID. Read more
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,
Fetches the full state of a public account from the node using the
/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_content<'life0, 'life1, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
note_tags: &'life1 BTreeSet<NoteTag>,
fetch: NoteContentFetch,
) -> Pin<Box<dyn Future<Output = Result<Vec<ResolvedSyncNotesBlock>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn sync_notes_with_content<'life0, 'life1, 'async_trait>(
&'life0 self,
block_from: BlockNumber,
block_to: BlockNumber,
note_tags: &'life1 BTreeSet<NoteTag>,
fetch: NoteContentFetch,
) -> Pin<Box<dyn Future<Output = Result<Vec<ResolvedSyncNotesBlock>, RpcError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calls
NodeRpcClient::sync_notes for the requested range, then makes a single
NodeRpcClient::get_notes_by_id call to resolve the note content the sync response did
not already carry, according to fetch, folding it into each note. 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,
Fills in the asset list when the vault came back flagged
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,
Fills in the entries of any storage map the node reported as oversize, by querying
NodeRpcClient::sync_storage_maps over [GENESIS, block_to]. No-op when no map is
oversize.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,
Fetches the commit height where the nullifier was consumed. If the nullifier isn’t found,
then
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,
Fetches public note-related data for a list of
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,
Given a block number, fetches the block header corresponding to that height from the node
along with the MMR proof. Read more
Auto Trait Implementations§
impl<T> Freeze for VerifyingRpcClient<T>where
T: Freeze,
impl<T> RefUnwindSafe for VerifyingRpcClient<T>where
T: RefUnwindSafe,
impl<T> Send for VerifyingRpcClient<T>where
T: Send,
impl<T> Sync for VerifyingRpcClient<T>where
T: Sync,
impl<T> Unpin for VerifyingRpcClient<T>where
T: Unpin,
impl<T> UnsafeUnpin for VerifyingRpcClient<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for VerifyingRpcClient<T>where
T: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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> ⓘ
Converts
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> ⓘ
Converts
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>
Wrap the input message
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,
Set the foreground color generically Read more
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Set the background color generically. Read more
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Change the foreground color to black
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Change the background color to black
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Change the foreground color to red
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Change the background color to red
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Change the foreground color to green
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Change the background color to green
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Change the foreground color to yellow
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Change the background color to yellow
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Change the foreground color to blue
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Change the background color to blue
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to magenta
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to magenta
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Change the foreground color to purple
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Change the background color to purple
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Change the foreground color to cyan
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Change the background color to cyan
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Change the foreground color to white
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Change the background color to white
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Change the foreground color to the terminal default
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Change the background color to the terminal default
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Change the foreground color to bright black
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Change the background color to bright black
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Change the foreground color to bright red
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Change the background color to bright red
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Change the foreground color to bright green
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Change the background color to bright green
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Change the foreground color to bright yellow
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Change the background color to bright yellow
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Change the foreground color to bright blue
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Change the background color to bright blue
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright magenta
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright magenta
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Change the foreground color to bright purple
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Change the background color to bright purple
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Change the foreground color to bright cyan
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Change the background color to bright cyan
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Change the foreground color to bright white
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Change the background color to bright white
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Make the text bold
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Make the text dim
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Make the text italicized
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Make the text underlined
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Make the text blink
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Make the text blink (but fast!)
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Swap the foreground and background colors
Hide the text
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Cross out the text
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,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either
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,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read moreSource§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>
Set the foreground color to a specific RGB value.
Source§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>
Set the background color to a specific RGB value.
Source§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
Source§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>
Sets the background color to an RGB value.