pub struct TipFeeManager {Show 15 fields
pub validator_tokens: <Mapping<Address, Address> as StorableType>::Handler,
pub user_tokens: <Mapping<Address, Address> as StorableType>::Handler,
pub collected_fees: <Mapping<Address, U256> as StorableType>::Handler,
pub tokens_with_fees: <Vec<Address> as StorableType>::Handler,
pub token_in_fees_array: <Mapping<Address, bool> as StorableType>::Handler,
pub pools: <Mapping<B256, Pool> as StorableType>::Handler,
pub pending_fee_swap_in: <Mapping<B256, u128> as StorableType>::Handler,
pub total_supply: <Mapping<B256, U256> as StorableType>::Handler,
pub liquidity_balances: <Mapping<B256, Mapping<Address, U256>> as StorableType>::Handler,
pub pools_with_fees: <Vec<TokenPair> as StorableType>::Handler,
pub pool_in_fees_array: <Mapping<TokenPair, bool> as StorableType>::Handler,
pub validators_with_fees: <Vec<Address> as StorableType>::Handler,
pub validator_in_fees_array: <Mapping<Address, bool> as StorableType>::Handler,
address: Address,
storage: StorageCtx,
}Fields§
§validator_tokens: <Mapping<Address, Address> as StorableType>::Handler§user_tokens: <Mapping<Address, Address> as StorableType>::Handler§collected_fees: <Mapping<Address, U256> as StorableType>::Handler§tokens_with_fees: <Vec<Address> as StorableType>::Handler§token_in_fees_array: <Mapping<Address, bool> as StorableType>::Handler§pools: <Mapping<B256, Pool> as StorableType>::Handler§pending_fee_swap_in: <Mapping<B256, u128> as StorableType>::Handler§total_supply: <Mapping<B256, U256> as StorableType>::Handler§liquidity_balances: <Mapping<B256, Mapping<Address, U256>> as StorableType>::Handler§pools_with_fees: <Vec<TokenPair> as StorableType>::Handler§pool_in_fees_array: <Mapping<TokenPair, bool> as StorableType>::Handler§validators_with_fees: <Vec<Address> as StorableType>::Handler§validator_in_fees_array: <Mapping<Address, bool> as StorableType>::Handler§address: Address§storage: StorageCtxImplementations§
Source§impl TipFeeManager
impl TipFeeManager
Sourcepub fn pool_id(&self, user_token: Address, validator_token: Address) -> B256
pub fn pool_id(&self, user_token: Address, validator_token: Address) -> B256
Gets the pool id for a given set of tokens. Note that the pool id is dependent on the ordering of the tokens ie. (token_a, token_b) results in a different pool id than (token_b, token_a)
Sourcepub fn get_pool(&self, call: getPoolCall) -> Result<Pool>
pub fn get_pool(&self, call: getPoolCall) -> Result<Pool>
Retrieves a pool for a given pool_id from storage
Sourcepub fn reserve_liquidity(
&mut self,
user_token: Address,
validator_token: Address,
max_amount: U256,
) -> Result<()>
pub fn reserve_liquidity( &mut self, user_token: Address, validator_token: Address, max_amount: U256, ) -> Result<()>
Ensures that pool has enough liquidity for a fee swap and reserve that liquidity in pending_fee_swap_in.
Sourcefn get_effective_validator_reserve(&self, pool_id: B256) -> Result<U256>
fn get_effective_validator_reserve(&self, pool_id: B256) -> Result<U256>
Calculate validator token reserve minus pending swaps
Sourcefn get_effective_user_reserve(&self, pool_id: B256) -> Result<U256>
fn get_effective_user_reserve(&self, pool_id: B256) -> Result<U256>
Calculate user token reserve plus pending swaps
Sourcepub fn release_liquidity(
&mut self,
user_token: Address,
validator_token: Address,
refund_amount: U256,
) -> Result<()>
pub fn release_liquidity( &mut self, user_token: Address, validator_token: Address, refund_amount: U256, ) -> Result<()>
Releases refund_amount of liquidity that was locked by reserve_liquidity
Sourcepub fn rebalance_swap(
&mut self,
msg_sender: Address,
user_token: Address,
validator_token: Address,
amount_out: U256,
to: Address,
) -> Result<U256>
pub fn rebalance_swap( &mut self, msg_sender: Address, user_token: Address, validator_token: Address, amount_out: U256, to: Address, ) -> Result<U256>
Swap to rebalance a fee token pool
Sourcepub fn mint(
&mut self,
msg_sender: Address,
user_token: Address,
validator_token: Address,
amount_user_token: U256,
amount_validator_token: U256,
to: Address,
) -> Result<U256>
pub fn mint( &mut self, msg_sender: Address, user_token: Address, validator_token: Address, amount_user_token: U256, amount_validator_token: U256, to: Address, ) -> Result<U256>
Mint LP tokens for a given pool
Sourcepub fn mint_with_validator_token(
&mut self,
msg_sender: Address,
user_token: Address,
validator_token: Address,
amount_validator_token: U256,
to: Address,
) -> Result<U256>
pub fn mint_with_validator_token( &mut self, msg_sender: Address, user_token: Address, validator_token: Address, amount_validator_token: U256, to: Address, ) -> Result<U256>
Mint LP tokens using only validator tokens
Sourcepub fn burn(
&mut self,
msg_sender: Address,
user_token: Address,
validator_token: Address,
liquidity: U256,
to: Address,
) -> Result<(U256, U256)>
pub fn burn( &mut self, msg_sender: Address, user_token: Address, validator_token: Address, liquidity: U256, to: Address, ) -> Result<(U256, U256)>
Burn LP tokens for a given pool
Sourcefn calculate_burn_amounts(
&self,
pool: &Pool,
pool_id: B256,
liquidity: U256,
) -> Result<(U256, U256)>
fn calculate_burn_amounts( &self, pool: &Pool, pool_id: B256, liquidity: U256, ) -> Result<(U256, U256)>
Calculate burn amounts for liquidity withdrawal
Sourcepub fn execute_pending_fee_swaps(
&mut self,
user_token: Address,
validator_token: Address,
) -> Result<U256>
pub fn execute_pending_fee_swaps( &mut self, user_token: Address, validator_token: Address, ) -> Result<U256>
Execute all pending fee swaps for a pool
Sourcepub fn get_total_supply(&self, pool_id: B256) -> Result<U256>
pub fn get_total_supply(&self, pool_id: B256) -> Result<U256>
Get total supply of LP tokens for a pool
Sourcefn set_total_supply(&mut self, pool_id: B256, total_supply: U256) -> Result<()>
fn set_total_supply(&mut self, pool_id: B256, total_supply: U256) -> Result<()>
Set total supply of LP tokens for a pool
Sourcepub fn get_liquidity_balances(
&self,
pool_id: B256,
user: Address,
) -> Result<U256>
pub fn get_liquidity_balances( &self, pool_id: B256, user: Address, ) -> Result<U256>
Get user’s LP token balance
Sourcefn set_liquidity_balances(
&mut self,
pool_id: B256,
user: Address,
balance: U256,
) -> Result<()>
fn set_liquidity_balances( &mut self, pool_id: B256, user: Address, balance: U256, ) -> Result<()>
Set user’s LP token balance
Sourcepub fn get_pending_fee_swap_in(&self, pool_id: B256) -> Result<u128>
pub fn get_pending_fee_swap_in(&self, pool_id: B256) -> Result<u128>
Get pending fee swap amount for a pool
Sourcefn set_pending_fee_swap_in(&mut self, pool_id: B256, amount: u128) -> Result<()>
fn set_pending_fee_swap_in(&mut self, pool_id: B256, amount: u128) -> Result<()>
Set pending fee swap amount for a pool
Source§impl TipFeeManager
impl TipFeeManager
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates an instance of the precompile.
Caution: This does not initialize the account, see Self::initialize.
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 TipFeeManager
impl TipFeeManager
pub const FEE_BPS: u64 = 25u64
pub const BASIS_POINTS: u64 = 10_000u64
pub const MINIMUM_BALANCE: U256
Sourcepub fn initialize(&mut self) -> Result<()>
pub fn initialize(&mut self) -> Result<()>
Initializes the contract
This ensures the TipFeeManager isn’t empty and prevents state clear.
Sourcefn default_fee_token(&self) -> Address
fn default_fee_token(&self) -> Address
Returns the default fee token based on the current hardfork. Post-Allegretto returns PathUSD, pre-Allegretto returns the first TIP20 after PathUSD.
pub fn get_validator_token(&self, beneficiary: Address) -> Result<Address>
pub fn set_validator_token( &mut self, sender: Address, call: setValidatorTokenCall, beneficiary: Address, ) -> Result<()>
pub fn set_user_token( &mut self, sender: Address, call: setUserTokenCall, ) -> Result<()>
Sourcepub fn collect_fee_pre_tx(
&mut self,
fee_payer: Address,
user_token: Address,
max_amount: U256,
beneficiary: Address,
) -> Result<Address>
pub fn collect_fee_pre_tx( &mut self, fee_payer: Address, user_token: Address, max_amount: U256, beneficiary: Address, ) -> Result<Address>
Collects fees from user before transaction execution.
Determines fee token, verifies pool liquidity for swaps if needed, reserves liquidity for the max fee amount and transfers it to the fee manager. Unused gas is later returned via collect_fee_post_tx
Sourcepub fn collect_fee_post_tx(
&mut self,
fee_payer: Address,
actual_spending: U256,
refund_amount: U256,
fee_token: Address,
beneficiary: Address,
) -> Result<()>
pub fn collect_fee_post_tx( &mut self, fee_payer: Address, actual_spending: U256, refund_amount: U256, fee_token: Address, beneficiary: Address, ) -> Result<()>
Finalizes fee collection after transaction execution.
Refunds unused tokens to user and tracks actual fee amount for swapping in execute_block
Called after transaction to settle the difference between max fee and actual usage.
pub fn execute_block( &mut self, sender: Address, beneficiary: Address, ) -> Result<()>
Sourcefn add_pair_to_fees_array(
&mut self,
user_token: Address,
validator_token: Address,
) -> Result<()>
fn add_pair_to_fees_array( &mut self, user_token: Address, validator_token: Address, ) -> Result<()>
Add a token to the tokens with fees array
Sourcefn drain_tokens_with_fees(&mut self) -> Result<Vec<Address>>
fn drain_tokens_with_fees(&mut self) -> Result<Vec<Address>>
Drain all tokens with fees by popping from the back until empty
Returns a Vec<Address> with all the tokens that were in storage
Also sets token_in_fees_array to false for each token
Sourcefn drain_validators_with_fees(&mut self) -> Result<Vec<Address>>
fn drain_validators_with_fees(&mut self) -> Result<Vec<Address>>
Drain all validators with fees by popping from the back until empty
Sourcefn drain_pools_with_fees(&mut self) -> Result<Vec<TokenPair>>
fn drain_pools_with_fees(&mut self) -> Result<Vec<TokenPair>>
Drain all pools with fees by popping from the back until empty
Sourcefn increment_collected_fees(
&mut self,
validator: Address,
amount: U256,
) -> Result<()>
fn increment_collected_fees( &mut self, validator: Address, amount: U256, ) -> Result<()>
Increment collected fees for the validator token
pub fn user_tokens(&self, call: userTokensCall) -> Result<Address>
pub fn validator_tokens(&self, call: validatorTokensCall) -> Result<Address>
pub fn get_fee_token_balance( &self, call: getFeeTokenBalanceCall, ) -> Result<getFeeTokenBalanceReturn>
Trait Implementations§
Source§impl ContractStorage for TipFeeManager
impl ContractStorage for TipFeeManager
Source§impl Default for TipFeeManager
impl Default for TipFeeManager
Source§impl Precompile for TipFeeManager
impl Precompile for TipFeeManager
Auto Trait Implementations§
impl Freeze for TipFeeManager
impl RefUnwindSafe for TipFeeManager
impl Send for TipFeeManager
impl Sync for TipFeeManager
impl Unpin for TipFeeManager
impl UnwindSafe for TipFeeManager
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: 752 bytes