pub struct TIP20Token {Show 27 fields
pub roles: <Mapping<Address, Mapping<B256, bool>> as StorableType>::Handler,
pub role_admins: <Mapping<B256, B256> as StorableType>::Handler,
pub name: <String as StorableType>::Handler,
pub symbol: <String as StorableType>::Handler,
pub currency: <String as StorableType>::Handler,
pub domain_separator: <B256 as StorableType>::Handler,
pub quote_token: <Address as StorableType>::Handler,
pub next_quote_token: <Address as StorableType>::Handler,
pub transfer_policy_id: <u64 as StorableType>::Handler,
pub total_supply: <U256 as StorableType>::Handler,
pub balances: <Mapping<Address, U256> as StorableType>::Handler,
pub allowances: <Mapping<Address, Mapping<Address, U256>> as StorableType>::Handler,
pub nonces: <Mapping<Address, U256> as StorableType>::Handler,
pub paused: <bool as StorableType>::Handler,
pub supply_cap: <U256 as StorableType>::Handler,
pub salts: <Mapping<B256, bool> as StorableType>::Handler,
pub global_reward_per_token: <U256 as StorableType>::Handler,
pub last_update_time: <u64 as StorableType>::Handler,
pub total_reward_per_second: <U256 as StorableType>::Handler,
pub opted_in_supply: <u128 as StorableType>::Handler,
pub next_stream_id: <u64 as StorableType>::Handler,
pub streams: <Mapping<u64, RewardStream> as StorableType>::Handler,
pub scheduled_rate_decrease: <Mapping<u128, U256> as StorableType>::Handler,
pub user_reward_info: <Mapping<Address, UserRewardInfo> as StorableType>::Handler,
pub fee_recipient: <Address as StorableType>::Handler,
address: Address,
storage: StorageCtx,
}Fields§
§roles: <Mapping<Address, Mapping<B256, bool>> as StorableType>::Handler§role_admins: <Mapping<B256, B256> as StorableType>::Handler§name: <String as StorableType>::Handler§symbol: <String as StorableType>::Handler§currency: <String as StorableType>::Handler§domain_separator: <B256 as StorableType>::Handler§quote_token: <Address as StorableType>::Handler§next_quote_token: <Address as StorableType>::Handler§transfer_policy_id: <u64 as StorableType>::Handler§total_supply: <U256 as StorableType>::Handler§balances: <Mapping<Address, U256> as StorableType>::Handler§allowances: <Mapping<Address, Mapping<Address, U256>> as StorableType>::Handler§nonces: <Mapping<Address, U256> as StorableType>::Handler§paused: <bool as StorableType>::Handler§supply_cap: <U256 as StorableType>::Handler§salts: <Mapping<B256, bool> as StorableType>::Handler§global_reward_per_token: <U256 as StorableType>::Handler§last_update_time: <u64 as StorableType>::Handler§total_reward_per_second: <U256 as StorableType>::Handler§opted_in_supply: <u128 as StorableType>::Handler§next_stream_id: <u64 as StorableType>::Handler§streams: <Mapping<u64, RewardStream> as StorableType>::Handler§scheduled_rate_decrease: <Mapping<u128, U256> as StorableType>::Handler§user_reward_info: <Mapping<Address, UserRewardInfo> as StorableType>::Handler§fee_recipient: <Address as StorableType>::Handler§address: Address§storage: StorageCtxImplementations§
Source§impl TIP20Token
impl TIP20Token
Sourcepub fn start_reward(
&mut self,
msg_sender: Address,
call: startRewardCall,
) -> Result<u64>
pub fn start_reward( &mut self, msg_sender: Address, call: startRewardCall, ) -> Result<u64>
Starts a new reward stream for the token contract.
This function allows an authorized user to fund a reward stream that distributes tokens to opted-in recipients either immediately if seconds=0, or over the specified duration.
Sourcepub fn accrue(&mut self, accrue_to_timestamp: U256) -> Result<()>
pub fn accrue(&mut self, accrue_to_timestamp: U256) -> Result<()>
Accrues rewards based on elapsed time since last update.
This function calculates and updates the reward per token stored based on the total reward rate and the time elapsed since the last update. Only processes rewards if there is an opted-in supply.
Sourcepub fn update_rewards(&mut self, holder: Address) -> Result<Address>
pub fn update_rewards(&mut self, holder: Address) -> Result<Address>
Updates and accumulates accrued rewards for a specific token holder.
This function calculates the rewards earned by a holder based on their balance and the reward per token difference since their last update. Rewards are accumulated in the delegated recipient’s rewardBalance. Returns the holder’s delegated recipient address.
Sourcepub fn set_reward_recipient(
&mut self,
msg_sender: Address,
call: setRewardRecipientCall,
) -> Result<()>
pub fn set_reward_recipient( &mut self, msg_sender: Address, call: setRewardRecipientCall, ) -> Result<()>
Sets or changes the reward recipient for a token holder.
This function allows a token holder to designate who should receive their share of rewards. Setting to zero address opts out of rewards.
Sourcepub fn cancel_reward(
&mut self,
msg_sender: Address,
call: cancelRewardCall,
) -> Result<U256>
pub fn cancel_reward( &mut self, msg_sender: Address, call: cancelRewardCall, ) -> Result<U256>
Cancels an active reward stream and refunds remaining tokens.
This function allows the funder of a reward stream to cancel it early, stopping future reward distribution and refunding unused tokens.
Sourcepub fn finalize_streams(
&mut self,
msg_sender: Address,
end_time: u128,
) -> Result<()>
pub fn finalize_streams( &mut self, msg_sender: Address, end_time: u128, ) -> Result<()>
Finalizes expired reward streams by updating the total reward rate.
This function is called to clean up streams that have reached their end time, reducing the total reward per second rate by the amount of the expired streams.
Sourcepub fn claim_rewards(&mut self, msg_sender: Address) -> Result<U256>
pub fn claim_rewards(&mut self, msg_sender: Address) -> Result<U256>
Claims accumulated rewards for a recipient.
This function allows a reward recipient to claim their accumulated rewards and receive them as token transfers to their own balance.
Sourcepub fn get_next_stream_id(&self) -> Result<u64>
pub fn get_next_stream_id(&self) -> Result<u64>
Gets the next available stream ID (minimum 1).
Sourcefn set_next_stream_id(&mut self, value: u64) -> Result<()>
fn set_next_stream_id(&mut self, value: u64) -> Result<()>
Sets the next stream ID counter.
Sourcefn get_global_reward_per_token(&self) -> Result<U256>
fn get_global_reward_per_token(&self) -> Result<U256>
Gets the accumulated global reward per token.
Sourcefn set_global_reward_per_token(&mut self, value: U256) -> Result<()>
fn set_global_reward_per_token(&mut self, value: U256) -> Result<()>
Sets the accumulated global reward per token in storage.
Sourcefn get_last_update_time(&self) -> Result<u64>
fn get_last_update_time(&self) -> Result<u64>
Gets the timestamp of the last reward update from storage.
Sourcefn set_last_update_time(&mut self, value: u64) -> Result<()>
fn set_last_update_time(&mut self, value: u64) -> Result<()>
Sets the timestamp of the last reward update in storage.
Sourcepub fn get_opted_in_supply(&self) -> Result<u128>
pub fn get_opted_in_supply(&self) -> Result<u128>
Gets the total supply of tokens opted into rewards from storage.
Sourcepub fn set_opted_in_supply(&mut self, value: u128) -> Result<()>
pub fn set_opted_in_supply(&mut self, value: u128) -> Result<()>
Sets the total supply of tokens opted into rewards in storage.
Sourcefn get_scheduled_rate_decrease_at(&self, end_time: u128) -> Result<U256>
fn get_scheduled_rate_decrease_at(&self, end_time: u128) -> Result<U256>
Gets the scheduled rate decrease at a specific time from storage.
Sourcefn set_scheduled_rate_decrease_at(
&mut self,
end_time: u128,
value: U256,
) -> Result<()>
fn set_scheduled_rate_decrease_at( &mut self, end_time: u128, value: U256, ) -> Result<()>
Sets the scheduled rate decrease at a specific time in storage.
Sourcepub fn get_total_reward_per_second(&self) -> Result<U256>
pub fn get_total_reward_per_second(&self) -> Result<U256>
Gets the total reward per second rate from storage.
Sourcefn set_total_reward_per_second(&mut self, value: U256) -> Result<()>
fn set_total_reward_per_second(&mut self, value: U256) -> Result<()>
Sets the total reward per second rate in storage.
Sourcepub fn handle_rewards_on_transfer(
&mut self,
from: Address,
to: Address,
amount: U256,
) -> Result<()>
pub fn handle_rewards_on_transfer( &mut self, from: Address, to: Address, amount: U256, ) -> Result<()>
Handles reward accounting for both sender and receiver during token transfers.
Sourcepub fn handle_rewards_on_mint(
&mut self,
to: Address,
amount: U256,
) -> Result<()>
pub fn handle_rewards_on_mint( &mut self, to: Address, amount: U256, ) -> Result<()>
Handles reward accounting when tokens are minted to an address.
Sourcepub fn get_stream(&self, stream_id: u64) -> Result<RewardStream>
pub fn get_stream(&self, stream_id: u64) -> Result<RewardStream>
Retrieves a reward stream by its ID.
Sourcepub fn get_user_reward_info(&self, account: Address) -> Result<UserRewardInfo>
pub fn get_user_reward_info(&self, account: Address) -> Result<UserRewardInfo>
Retrieves user reward information for a given account.
Source§impl TIP20Token
impl TIP20Token
Sourcepub fn initialize_roles(&mut self) -> Result<()>
pub fn initialize_roles(&mut self) -> Result<()>
Initialize the UNGRANTABLE_ROLE to be self-administered
Sourcepub fn grant_default_admin(&mut self, admin: Address) -> Result<()>
pub fn grant_default_admin(&mut self, admin: Address) -> Result<()>
Grant the default admin role to an account
pub fn has_role(&self, call: hasRoleCall) -> Result<bool>
pub fn get_role_admin(&self, call: getRoleAdminCall) -> Result<B256>
pub fn grant_role( &mut self, msg_sender: Address, call: grantRoleCall, ) -> Result<()>
pub fn revoke_role( &mut self, msg_sender: Address, call: revokeRoleCall, ) -> Result<()>
pub fn renounce_role( &mut self, msg_sender: Address, call: renounceRoleCall, ) -> Result<()>
pub fn set_role_admin( &mut self, msg_sender: Address, call: setRoleAdminCall, ) -> Result<()>
pub fn check_role(&self, account: Address, role: B256) -> Result<()>
pub fn has_role_internal(&self, account: Address, role: B256) -> Result<bool>
pub fn grant_role_internal( &mut self, account: Address, role: B256, ) -> Result<()>
fn revoke_role_internal(&mut self, account: Address, role: B256) -> Result<()>
Sourcefn get_role_admin_internal(&self, role: B256) -> Result<B256>
fn get_role_admin_internal(&self, role: B256) -> Result<B256>
If sloads 0, will be equal to DEFAULT_ADMIN_ROLE
fn set_role_admin_internal( &mut self, role: B256, admin_role: B256, ) -> Result<()>
fn check_role_internal(&self, account: Address, role: B256) -> Result<()>
Source§impl TIP20Token
impl TIP20Token
fn __new(address: Address) -> Self
fn __initialize(&mut self) -> Result<()>
fn emit_event(&mut self, event: impl IntoLogData) -> Result<()>
fn emitted_events(&self) -> &Vec<LogData>
test-utils only.fn assert_emitted_events(&self, expected: Vec<impl IntoLogData>)
test-utils only.Source§impl TIP20Token
impl TIP20Token
pub fn name(&self) -> Result<String>
pub fn symbol(&self) -> Result<String>
pub fn decimals(&self) -> Result<u8>
pub fn currency(&self) -> Result<String>
pub fn total_supply(&self) -> Result<U256>
pub fn quote_token(&self) -> Result<Address>
pub fn next_quote_token(&self) -> Result<Address>
pub fn supply_cap(&self) -> Result<U256>
pub fn paused(&self) -> Result<bool>
pub fn transfer_policy_id(&self) -> Result<u64>
Sourcepub fn pause_role() -> B256
pub fn pause_role() -> B256
Returns the PAUSE_ROLE constant
This role identifier grants permission to pause the token contract.
The role is computed as keccak256("PAUSE_ROLE").
Sourcepub fn unpause_role() -> B256
pub fn unpause_role() -> B256
Returns the UNPAUSE_ROLE constant
This role identifier grants permission to unpause the token contract.
The role is computed as keccak256("UNPAUSE_ROLE").
Sourcepub fn issuer_role() -> B256
pub fn issuer_role() -> B256
Returns the ISSUER_ROLE constant
This role identifier grants permission to mint and burn tokens.
The role is computed as keccak256("ISSUER_ROLE").
Sourcepub fn burn_blocked_role() -> B256
pub fn burn_blocked_role() -> B256
Returns the BURN_BLOCKED_ROLE constant
This role identifier grants permission to burn tokens from blocked accounts.
The role is computed as keccak256("BURN_BLOCKED_ROLE").
pub fn balance_of(&self, call: balanceOfCall) -> Result<U256>
pub fn allowance(&self, call: allowanceCall) -> Result<U256>
pub fn change_transfer_policy_id( &mut self, msg_sender: Address, call: changeTransferPolicyIdCall, ) -> Result<()>
pub fn set_supply_cap( &mut self, msg_sender: Address, call: setSupplyCapCall, ) -> Result<()>
pub fn pause(&mut self, msg_sender: Address, _call: pauseCall) -> Result<()>
pub fn unpause(&mut self, msg_sender: Address, _call: unpauseCall) -> Result<()>
pub fn set_next_quote_token( &mut self, msg_sender: Address, call: setNextQuoteTokenCall, ) -> Result<()>
pub fn complete_quote_token_update( &mut self, msg_sender: Address, _call: completeQuoteTokenUpdateCall, ) -> Result<()>
Sourcepub fn set_fee_recipient(
&mut self,
msg_sender: Address,
new_recipient: Address,
) -> Result<()>
pub fn set_fee_recipient( &mut self, msg_sender: Address, new_recipient: Address, ) -> Result<()>
Sets a new fee recipient
Sourcepub fn get_fee_recipient(&self, _msg_sender: Address) -> Result<Address>
pub fn get_fee_recipient(&self, _msg_sender: Address) -> Result<Address>
Gets the current fee recipient
Sourcepub fn mint(&mut self, msg_sender: Address, call: mintCall) -> Result<()>
pub fn mint(&mut self, msg_sender: Address, call: mintCall) -> Result<()>
Mints new tokens to specified address
Sourcepub fn mint_with_memo(
&mut self,
msg_sender: Address,
call: mintWithMemoCall,
) -> Result<()>
pub fn mint_with_memo( &mut self, msg_sender: Address, call: mintWithMemoCall, ) -> Result<()>
Mints new tokens to specified address with memo attached
Sourcefn _mint(
&mut self,
msg_sender: Address,
to: Address,
amount: U256,
) -> Result<()>
fn _mint( &mut self, msg_sender: Address, to: Address, amount: U256, ) -> Result<()>
Internal helper to mint new tokens and update balances
Sourcepub fn burn(&mut self, msg_sender: Address, call: burnCall) -> Result<()>
pub fn burn(&mut self, msg_sender: Address, call: burnCall) -> Result<()>
Burns tokens from sender’s balance and reduces total supply
Sourcepub fn burn_with_memo(
&mut self,
msg_sender: Address,
call: burnWithMemoCall,
) -> Result<()>
pub fn burn_with_memo( &mut self, msg_sender: Address, call: burnWithMemoCall, ) -> Result<()>
Burns tokens from sender’s balance with memo attached
Sourcepub fn burn_blocked(
&mut self,
msg_sender: Address,
call: burnBlockedCall,
) -> Result<()>
pub fn burn_blocked( &mut self, msg_sender: Address, call: burnBlockedCall, ) -> Result<()>
Burns tokens from blocked addresses that cannot transfer
fn _burn(&mut self, msg_sender: Address, amount: U256) -> Result<()>
pub fn approve( &mut self, msg_sender: Address, call: approveCall, ) -> Result<bool>
pub fn transfer( &mut self, msg_sender: Address, call: transferCall, ) -> Result<bool>
pub fn transfer_from( &mut self, msg_sender: Address, call: transferFromCall, ) -> Result<bool>
Sourcepub fn transfer_from_with_memo(
&mut self,
msg_sender: Address,
call: transferFromWithMemoCall,
) -> Result<bool>
pub fn transfer_from_with_memo( &mut self, msg_sender: Address, call: transferFromWithMemoCall, ) -> Result<bool>
Transfer from from to to address with memo attached
Sourcepub fn system_transfer_from(
&mut self,
from: Address,
to: Address,
amount: U256,
) -> Result<bool>
pub fn system_transfer_from( &mut self, from: Address, to: Address, amount: U256, ) -> Result<bool>
Transfer from from to to address without approval requirement
This function is not exposed via the public interface and should only be invoked by precompiles
fn _transfer_from( &mut self, msg_sender: Address, from: Address, to: Address, amount: U256, ) -> Result<bool>
pub fn transfer_with_memo( &mut self, msg_sender: Address, call: transferWithMemoCall, ) -> Result<()>
Source§impl TIP20Token
impl TIP20Token
pub fn new(token_id: u64) -> Self
Sourcepub fn from_address(address: Address) -> Result<Self>
pub fn from_address(address: Address) -> Result<Self>
Create a TIP20Token from an address. Returns an error if the address is not a valid TIP20 token (post-AllegroModerato).
Sourcepub fn initialize(
&mut self,
name: &str,
symbol: &str,
currency: &str,
quote_token: Address,
admin: Address,
fee_recipient: Address,
) -> Result<()>
pub fn initialize( &mut self, name: &str, symbol: &str, currency: &str, quote_token: Address, admin: Address, fee_recipient: Address, ) -> Result<()>
Only called internally from the factory, which won’t try to re-initialize a token.
fn get_balance(&self, account: Address) -> Result<U256>
fn set_balance(&mut self, account: Address, amount: U256) -> Result<()>
fn get_allowance(&self, owner: Address, spender: Address) -> Result<U256>
fn set_allowance( &mut self, owner: Address, spender: Address, amount: U256, ) -> Result<()>
fn set_total_supply(&mut self, amount: U256) -> Result<()>
fn check_not_paused(&self) -> Result<()>
fn check_not_token_address(&self, to: Address) -> Result<()>
Checks if the transfer is authorized.
Ensures the transfer is authorized.
fn _transfer(&mut self, from: Address, to: Address, amount: U256) -> Result<()>
Sourcepub fn transfer_fee_pre_tx(&mut self, from: Address, amount: U256) -> Result<()>
pub fn transfer_fee_pre_tx(&mut self, from: Address, amount: U256) -> Result<()>
Transfers fee tokens from user to fee manager before transaction execution
Sourcepub fn transfer_fee_post_tx(
&mut self,
to: Address,
refund: U256,
actual_spending: U256,
) -> Result<()>
pub fn transfer_fee_post_tx( &mut self, to: Address, refund: U256, actual_spending: U256, ) -> Result<()>
Refunds unused fee tokens to user and emits transfer event for gas amount used
Trait Implementations§
Source§impl ContractStorage for TIP20Token
impl ContractStorage for TIP20Token
Source§impl Precompile for TIP20Token
impl Precompile for TIP20Token
Auto Trait Implementations§
impl Freeze for TIP20Token
impl RefUnwindSafe for TIP20Token
impl Send for TIP20Token
impl Sync for TIP20Token
impl Unpin for TIP20Token
impl UnwindSafe for TIP20Token
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<T> Conv for T
impl<T> Conv 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<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv] from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv] from a transaction, its sender, and encoded transaction bytes.§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> 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 more§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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute] value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi [Quirk] value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);§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> ServiceExt for T
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
propagate-header only.§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
add-extension only.§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
map-request-body only.§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
compression-br or compression-deflate or compression-gzip or compression-zstd only.§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
decompression-br or decompression-deflate or decompression-gzip or decompression-zstd only.§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
follow-redirect only.§fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
sensitive-headers only.§fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.x-request-id as the header name. Read more§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
catch-panic only.500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
limit only.413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§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.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSend for Twhere
T: Send,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1552 bytes