pub struct Client { /* private fields */ }Expand description
A light client for connecting to the Miden network.
Miden client is responsible for managing a set of accounts. Specifically, the client:
- Keeps track of the current and historical states of a set of accounts and related objects such as notes and transactions.
- Connects to a Miden node to periodically sync with the current state of the network.
- Executes, proves, and submits transactions to the network as directed by the user.
Implementations§
Source§impl Client
This section of the Client contains methods for:
impl Client
This section of the Client contains methods for:
-
Account creation: Use the
AccountBuilderto construct new accounts, specifying account type, storage mode (public/private), and attaching necessary components (e.g., basic wallet or fungible faucet). After creation, they can be added to the client. -
Account tracking: Accounts added via the client are persisted to the local store, where their state (including nonce, balance, and metadata) is updated upon every synchronization with the network.
-
Data retrieval: The module also provides methods to fetch account-related data.
Sourcepub async fn add_account(
&mut self,
account: &Account,
account_seed: Option<Word>,
overwrite: bool,
) -> Result<(), ClientError>
pub async fn add_account( &mut self, account: &Account, account_seed: Option<Word>, overwrite: bool, ) -> Result<(), ClientError>
Adds the provided Account in the store so it can start being tracked by the client.
If the account is already being tracked and overwrite is set to true, the account will
be overwritten. The account_seed should be provided if the account is newly created.
§Errors
- If the account is new but no seed is provided.
- If the account is already tracked and
overwriteis set tofalse. - If
overwriteis set totrueand theaccount_datanonce is lower than the one already being tracked. - If
overwriteis set totrueand theaccount_datacommitment doesn’t match the network’s account commitment.
Sourcepub async fn import_account_by_id(
&mut self,
account_id: AccountId,
) -> Result<(), ClientError>
pub async fn import_account_by_id( &mut self, account_id: AccountId, ) -> Result<(), ClientError>
Imports an account from the network to the client’s store. The account needs to be public and be tracked by the network, it will be fetched by its ID. If the account was already being tracked by the client, it’s state will be overwritten.
§Errors
- If the account is not found on the network.
- If the account is private.
- There was an error sending the request to the network.
Sourcepub async fn get_account_headers(
&self,
) -> Result<Vec<(AccountHeader, AccountStatus)>, ClientError>
pub async fn get_account_headers( &self, ) -> Result<Vec<(AccountHeader, AccountStatus)>, ClientError>
Returns a list of AccountHeader of all accounts stored in the database along with their
statuses.
Said accounts’ state is the state after the last performed sync.
Sourcepub async fn get_account(
&self,
account_id: AccountId,
) -> Result<Option<AccountRecord>, ClientError>
pub async fn get_account( &self, account_id: AccountId, ) -> Result<Option<AccountRecord>, ClientError>
Retrieves a full AccountRecord object for the specified account_id. This result
represents data for the latest state known to the client, alongside its status. Returns
None if the account ID is not found.
Sourcepub async fn get_account_header_by_id(
&self,
account_id: AccountId,
) -> Result<Option<(AccountHeader, AccountStatus)>, ClientError>
pub async fn get_account_header_by_id( &self, account_id: AccountId, ) -> Result<Option<(AccountHeader, AccountStatus)>, ClientError>
Retrieves an AccountHeader object for the specified AccountId along with its status.
Returns None if the account ID is not found.
Said account’s state is the state according to the last sync performed.
Sourcepub async fn try_get_account(
&self,
account_id: AccountId,
) -> Result<AccountRecord, ClientError>
pub async fn try_get_account( &self, account_id: AccountId, ) -> Result<AccountRecord, ClientError>
Attempts to retrieve an AccountRecord by its AccountId.
§Errors
- If the account record is not found.
- If the underlying store operation fails.
Sourcepub async fn try_get_account_header(
&self,
account_id: AccountId,
) -> Result<(AccountHeader, AccountStatus), ClientError>
pub async fn try_get_account_header( &self, account_id: AccountId, ) -> Result<(AccountHeader, AccountStatus), ClientError>
Attempts to retrieve an AccountHeader by its AccountId.
§Errors
- If the account header is not found.
- If the underlying store operation fails.
Source§impl Client
Note importing methods.
impl Client
Note importing methods.
Sourcepub async fn import_note(
&mut self,
note_file: NoteFile,
) -> Result<NoteId, ClientError>
pub async fn import_note( &mut self, note_file: NoteFile, ) -> Result<NoteId, ClientError>
Imports a new input note into the client’s store. The information stored depends on the
type of note file provided. If the note existed previously, it will be updated with the
new information. The tag specified by the NoteFile will start being tracked.
- If the note file is a
NoteFile::NoteId, the note is fetched from the node and stored in the client’s store. If the note is private or doesn’t exist, an error is returned. - If the note file is a
NoteFile::NoteDetails, a new note is created with the provided details and tag. - If the note file is a
NoteFile::NoteWithProof, the note is stored with the provided inclusion proof and metadata. The block header data is only fetched from the node if the note is committed in the past relative to the client.
§Errors
- If an attempt is made to overwrite a note that is currently processing.
Source§impl Client
Note retrieval methods.
impl Client
Note retrieval methods.
Sourcepub async fn get_input_notes(
&self,
filter: NoteFilter,
) -> Result<Vec<InputNoteRecord>, ClientError>
pub async fn get_input_notes( &self, filter: NoteFilter, ) -> Result<Vec<InputNoteRecord>, ClientError>
Retrieves the input notes managed by the client from the store.
§Errors
Returns a ClientError::StoreError if the filter is NoteFilter::Unique and there is
no Note with the provided ID.
Sourcepub async fn get_consumable_notes(
&self,
account_id: Option<AccountId>,
) -> Result<Vec<(InputNoteRecord, Vec<NoteConsumability>)>, ClientError>
pub async fn get_consumable_notes( &self, account_id: Option<AccountId>, ) -> Result<Vec<(InputNoteRecord, Vec<NoteConsumability>)>, ClientError>
Returns the input notes and their consumability. Assuming the notes will be consumed by a
normal consume transaction. If account_id is None then all consumable input notes are
returned.
The note screener runs a series of checks to determine whether the note can be executed as part of a transaction for a specific account. If the specific account ID can consume it (ie, if it’s compatible with the account), it will be returned as part of the result list.
Sourcepub async fn get_note_consumability(
&self,
note: InputNoteRecord,
) -> Result<Vec<NoteConsumability>, ClientError>
pub async fn get_note_consumability( &self, note: InputNoteRecord, ) -> Result<Vec<NoteConsumability>, ClientError>
Returns the consumability conditions for the provided note.
The note screener runs a series of checks to determine whether the note can be executed as part of a transaction for a specific account. If the specific account ID can consume it (ie, if it’s compatible with the account), it will be returned as part of the result list.
Sourcepub async fn get_input_note(
&self,
note_id: NoteId,
) -> Result<Option<InputNoteRecord>, ClientError>
pub async fn get_input_note( &self, note_id: NoteId, ) -> Result<Option<InputNoteRecord>, ClientError>
Retrieves the input note given a NoteId. Returns None if the note is not found.
Sourcepub async fn get_output_notes(
&self,
filter: NoteFilter,
) -> Result<Vec<OutputNoteRecord>, ClientError>
pub async fn get_output_notes( &self, filter: NoteFilter, ) -> Result<Vec<OutputNoteRecord>, ClientError>
Returns output notes managed by this client.
Sourcepub async fn get_output_note(
&self,
note_id: NoteId,
) -> Result<Option<OutputNoteRecord>, ClientError>
pub async fn get_output_note( &self, note_id: NoteId, ) -> Result<Option<OutputNoteRecord>, ClientError>
Retrieves the output note given a NoteId. Returns None if the note is not found.
Sourcepub fn compile_note_script(
&self,
note_script: &str,
) -> Result<NoteScript, ClientError>
pub fn compile_note_script( &self, note_script: &str, ) -> Result<NoteScript, ClientError>
Compiles the provided program into a NoteScript.
The assembler uses the debug mode if the client was instantiated with debug mode on.
Source§impl Client
Network information management methods.
impl Client
Network information management methods.
Sourcepub async fn ensure_genesis_in_place(
&mut self,
) -> Result<BlockHeader, ClientError>
pub async fn ensure_genesis_in_place( &mut self, ) -> Result<BlockHeader, ClientError>
Attempts to retrieve the genesis block from the store. If not found, it requests it from the node and store it.
Sourcepub async fn get_epoch_block(
&mut self,
block_num: BlockNumber,
) -> Result<BlockHeader, ClientError>
pub async fn get_epoch_block( &mut self, block_num: BlockNumber, ) -> Result<BlockHeader, ClientError>
Returns the epoch block for the specified block number.
If the epoch block header is not stored, it will be retrieved and stored.
Sourcepub async fn get_latest_epoch_block(
&mut self,
) -> Result<BlockHeader, ClientError>
pub async fn get_latest_epoch_block( &mut self, ) -> Result<BlockHeader, ClientError>
Returns the epoch block for the latest tracked block.
If the epoch block header is not stored, it will be retrieved and stored.
Source§impl Client
Tag management methods
impl Client
Tag management methods
Returns the list of note tags tracked by the client along with their source.
When syncing the state with the node, these tags will be added to the sync request and note-related information will be retrieved for notes that have matching tags. The source of the tag indicates its origin. It helps distinguish between:
- Tags added manually by the user.
- Tags automatically added by the client to track notes.
- Tags added for accounts tracked by the client.
Note: Tags for accounts that are being tracked by the client are managed automatically by the client and don’t need to be added here. That is, notes for managed accounts will be retrieved automatically by the client when syncing.
Sourcepub async fn add_note_tag(&mut self, tag: NoteTag) -> Result<(), ClientError>
pub async fn add_note_tag(&mut self, tag: NoteTag) -> Result<(), ClientError>
Adds a note tag for the client to track. This tag’s source will be marked as User.
Sourcepub async fn remove_note_tag(&mut self, tag: NoteTag) -> Result<(), ClientError>
pub async fn remove_note_tag(&mut self, tag: NoteTag) -> Result<(), ClientError>
Removes a note tag for the client to track. Only tags added by the user can be removed.
Source§impl Client
Client synchronization methods.
impl Client
Client synchronization methods.
Sourcepub async fn get_sync_height(&self) -> Result<BlockNumber, ClientError>
pub async fn get_sync_height(&self) -> Result<BlockNumber, ClientError>
Returns the block number of the last state sync block.
Sourcepub async fn sync_state(&mut self) -> Result<SyncSummary, ClientError>
pub async fn sync_state(&mut self) -> Result<SyncSummary, ClientError>
Syncs the client’s state with the current state of the Miden network and returns a
SyncSummary corresponding to the local state update.
The sync process is done in multiple steps:
- A request is sent to the node to get the state updates. This request includes tracked account IDs and the tags of notes that might have changed or that might be of interest to the client.
- A response is received with the current state of the network. The response includes information about new/committed/consumed notes, updated accounts, and committed transactions.
- Tracked notes are updated with their new states.
- New notes are checked, and only relevant ones are stored. Relevant notes are those that
can be consumed by accounts the client is tracking (this is checked by the
crate::note::NoteScreener) - Transactions are updated with their new states.
- Tracked public accounts are updated and private accounts are validated against the node state.
- The MMR is updated with the new peaks and authentication nodes.
- All updates are applied to the store to be persisted.
Source§impl Client
Transaction management methods
impl Client
Transaction management methods
Sourcepub async fn get_transactions(
&self,
filter: TransactionFilter,
) -> Result<Vec<TransactionRecord>, ClientError>
pub async fn get_transactions( &self, filter: TransactionFilter, ) -> Result<Vec<TransactionRecord>, ClientError>
Retrieves tracked transactions, filtered by TransactionFilter.
Sourcepub async fn new_transaction(
&mut self,
account_id: AccountId,
transaction_request: TransactionRequest,
) -> Result<TransactionResult, ClientError>
pub async fn new_transaction( &mut self, account_id: AccountId, transaction_request: TransactionRequest, ) -> Result<TransactionResult, ClientError>
Creates and executes a transaction specified by the request against the specified account, but doesn’t change the local database.
If the transaction utilizes foreign account data, there is a chance that the client doesn’t have the required block header in the local database. In these scenarios, a sync to the chain tip is performed, and the required block header is retrieved.
§Errors
- Returns
ClientError::MissingOutputNotesif theTransactionRequestouput notes are not a subset of executor’s output notes. - Returns a
ClientError::TransactionExecutorErrorif the execution fails. - Returns a
ClientError::TransactionRequestErrorif the request is invalid.
Sourcepub async fn submit_transaction(
&mut self,
tx_result: TransactionResult,
) -> Result<(), ClientError>
pub async fn submit_transaction( &mut self, tx_result: TransactionResult, ) -> Result<(), ClientError>
Proves the specified transaction using a local prover, submits it to the network, and saves the transaction into the local database for tracking.
Sourcepub async fn submit_transaction_with_prover(
&mut self,
tx_result: TransactionResult,
tx_prover: Arc<dyn TransactionProver>,
) -> Result<(), ClientError>
pub async fn submit_transaction_with_prover( &mut self, tx_result: TransactionResult, tx_prover: Arc<dyn TransactionProver>, ) -> Result<(), ClientError>
Proves the specified transaction using the provided prover, submits it to the network, and saves the transaction into the local database for tracking.
Sourcepub fn compile_tx_script<T>(
&self,
inputs: T,
program: &str,
) -> Result<TransactionScript, ClientError>
pub fn compile_tx_script<T>( &self, inputs: T, program: &str, ) -> Result<TransactionScript, ClientError>
Compiles the provided transaction script source and inputs into a TransactionScript.
Sourcepub async fn validate_request(
&mut self,
account_id: AccountId,
transaction_request: &TransactionRequest,
) -> Result<(), ClientError>
pub async fn validate_request( &mut self, account_id: AccountId, transaction_request: &TransactionRequest, ) -> Result<(), ClientError>
Validates that the specified transaction request can be executed by the specified account.
This does’t guarantee that the transaction will succeed, but it’s useful to avoid submitting transactions that are guaranteed to fail. Some of the validations include:
- That the account has enough balance to cover the outgoing assets.
- That the client is not too far behind the chain tip.
Sourcepub async fn execute_program(
&mut self,
account_id: AccountId,
tx_script: TransactionScript,
advice_inputs: AdviceInputs,
foreign_accounts: BTreeSet<ForeignAccount>,
) -> Result<[Felt; 16], ClientError>
pub async fn execute_program( &mut self, account_id: AccountId, tx_script: TransactionScript, advice_inputs: AdviceInputs, foreign_accounts: BTreeSet<ForeignAccount>, ) -> Result<[Felt; 16], ClientError>
Executes the provided transaction script against the specified account, and returns the resulting stack. Advice inputs and foreign accounts can be provided for the execution.
The transaction will use the current sync height as the block reference.
Source§impl Client
Construction and access methods.
impl Client
Construction and access methods.
Sourcepub fn new(
rpc_api: Arc<dyn NodeRpcClient + Send>,
rng: Box<dyn FeltRng>,
store: Arc<dyn Store>,
authenticator: Arc<dyn TransactionAuthenticator>,
in_debug_mode: bool,
tx_graceful_blocks: Option<u32>,
max_block_number_delta: Option<u32>,
) -> Self
pub fn new( rpc_api: Arc<dyn NodeRpcClient + Send>, rng: Box<dyn FeltRng>, store: Arc<dyn Store>, authenticator: Arc<dyn TransactionAuthenticator>, in_debug_mode: bool, tx_graceful_blocks: Option<u32>, max_block_number_delta: Option<u32>, ) -> Self
Returns a new instance of Client.
§Arguments
api: An instance ofNodeRpcClientwhich provides a way for the client to connect to the Miden node.store: An instance ofStore, which provides a way to write and read entities to provide persistence.executor_store: An instance ofStorethat provides a way forTransactionExecutorto retrieve relevant inputs at the moment of transaction execution. It should be the same store as the one forstore, but it doesn’t have to be the same instance.authenticator: Defines the transaction authenticator that will be used by the transaction executor whenever a signature is requested from within the VM.in_debug_mode: Instantiates the transaction executor (and in turn, its compiler) in debug mode, which will enable debug logs for scripts compiled with this mode for easier MASM debugging.tx_graceful_blocks: The number of blocks that are considered old enough to discard pending transactions.max_block_number_delta: Determines the maximum number of blocks that the client can be behind the network for transactions and account proofs to be considered valid.
§Errors
Returns an error if the client couldn’t be instantiated.
Sourcepub fn is_in_debug_mode(&self) -> bool
pub fn is_in_debug_mode(&self) -> bool
Returns true if the client is in debug mode.
Auto Trait Implementations§
impl Freeze for Client
impl !RefUnwindSafe for Client
impl !Send for Client
impl !Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
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> 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<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