Enum pallet_lbp::pallet::Call
source · pub enum Call<T: Config> {
create_pool {
pool_owner: T::AccountId,
asset_a: AssetId,
asset_a_amount: Balance,
asset_b: AssetId,
asset_b_amount: Balance,
initial_weight: LBPWeight,
final_weight: LBPWeight,
weight_curve: WeightCurveType,
fee: (u32, u32),
fee_collector: T::AccountId,
repay_target: Balance,
},
update_pool_data {
pool_id: <T as Config>::AccountId,
pool_owner: Option<T::AccountId>,
start: Option<T::BlockNumber>,
end: Option<T::BlockNumber>,
initial_weight: Option<LBPWeight>,
final_weight: Option<LBPWeight>,
fee: Option<(u32, u32)>,
fee_collector: Option<T::AccountId>,
repay_target: Option<Balance>,
},
add_liquidity {
amount_a: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance),
amount_b: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance),
},
remove_liquidity {
pool_id: <T as Config>::AccountId,
},
sell {
asset_in: AssetId,
asset_out: AssetId,
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
},
buy {
asset_out: AssetId,
asset_in: AssetId,
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
},
// some variants omitted
}
Expand description
Contains one variant per dispatchable that can be called by an extrinsic.
Variants§
create_pool
Fields
weight_curve: WeightCurveType
Create a new liquidity bootstrapping pool for given asset pair.
For any asset pair, only one pool can exist at a time.
The dispatch origin for this call must be T::CreatePoolOrigin
.
The pool is created with initial liquidity provided by the pool_owner
who must have
sufficient funds free.
The pool starts uninitialized and update_pool call should be called once created to set the start block.
This function should be dispatched from governing entity T::CreatePoolOrigin
Parameters:
pool_owner
: the future owner of the new pool.asset_a
: { asset_id, amount } Asset ID and initial liquidity amount.asset_b
: { asset_id, amount } Asset ID and initial liquidity amount.initial_weight
: Initial weight of the asset_a. 1_000_000 corresponding to 1% and 100_000_000 to 100% this should be higher than final weightfinal_weight
: Final weight of the asset_a. 1_000_000 corresponding to 1% and 100_000_000 to 100% this should be lower than initial weightweight_curve
: The weight function used to update the LBP weights. Currently, there is only one weight function implemented, the linear function.fee
: The trading fee charged on every trade distributed tofee_collector
.fee_collector
: The account to which trading fees will be transferred.repay_target
: The amount of tokens to repay to separate fee_collector account. Until this amount is reached, fee will be increased to 20% and taken from the pool
Emits PoolCreated
event when successful.
BEWARE: We are taking the fee from the accumulated asset. If the accumulated asset is sold to the pool, the fee cost is transferred to the pool. If its bought from the pool the buyer bears the cost. This increases the price of the sold asset on every trade. Make sure to only run this with previously illiquid assets.
update_pool_data
Update pool data of a pool.
The dispatch origin for this call must be signed by the pool owner.
The pool can be updated only if the sale has not already started.
At least one of the following optional parameters has to be specified.
Parameters:
pool_id
: The identifier of the pool to be updated.start
: The new starting time of the sale. This parameter is optional.end
: The new ending time of the sale. This parameter is optional.initial_weight
: The new initial weight. This parameter is optional.final_weight
: The new final weight. This parameter is optional.fee
: The new trading fee charged on every trade. This parameter is optional.fee_collector
: The new receiver of trading fees. This parameter is optional.
Emits PoolUpdated
event when successful.
add_liquidity
Fields
amount_a: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance)
amount_b: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance)
Add liquidity to a pool.
Assets to add has to match the pool assets. At least one amount has to be non-zero.
The dispatch origin for this call must be signed by the pool owner.
Parameters:
pool_id
: The identifier of the poolamount_a
: The identifier of the asset and the amount to add.amount_b
: The identifier of the second asset and the amount to add.
Emits LiquidityAdded
event when successful.
remove_liquidity
Transfer all the liquidity from a pool back to the pool owner and destroy the pool. The pool data are also removed from the storage.
The pool can’t be destroyed during the sale.
The dispatch origin for this call must be signed by the pool owner.
Parameters:
amount_a
: The identifier of the asset and the amount to add.
Emits ‘LiquidityRemoved’ when successful.
sell
Fields
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
Trade asset_in
for asset_out
.
Executes a swap of asset_in
for asset_out
. Price is determined by the pool and is
affected by the amount and proportion of the pool assets and the weights.
Trading fee
is distributed to the fee_collector
.
Parameters:
asset_in
: The identifier of the asset being transferred from the account to the pool.asset_out
: The identifier of the asset being transferred from the pool to the account.amount
: The amount ofasset_in
max_limit
: minimum amount ofasset_out
/ amount of asset_out to be obtained from the pool in exchange forasset_in
.
Emits SellExecuted
when successful.
buy
Fields
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
Trade asset_in
for asset_out
.
Executes a swap of asset_in
for asset_out
. Price is determined by the pool and is
affected by the amount and the proportion of the pool assets and the weights.
Trading fee
is distributed to the fee_collector
.
Parameters:
asset_in
: The identifier of the asset being transferred from the account to the pool.asset_out
: The identifier of the asset being transferred from the pool to the account.amount
: The amount ofasset_out
.max_limit
: maximum amount ofasset_in
to be sold in exchange forasset_out
.
Emits BuyExecuted
when successful.
Implementations§
source§impl<T: Config> Call<T>
impl<T: Config> Call<T>
sourcepub fn new_call_variant_create_pool(
pool_owner: T::AccountId,
asset_a: AssetId,
asset_a_amount: Balance,
asset_b: AssetId,
asset_b_amount: Balance,
initial_weight: LBPWeight,
final_weight: LBPWeight,
weight_curve: WeightCurveType,
fee: (u32, u32),
fee_collector: T::AccountId,
repay_target: Balance
) -> Self
pub fn new_call_variant_create_pool(
pool_owner: T::AccountId,
asset_a: AssetId,
asset_a_amount: Balance,
asset_b: AssetId,
asset_b_amount: Balance,
initial_weight: LBPWeight,
final_weight: LBPWeight,
weight_curve: WeightCurveType,
fee: (u32, u32),
fee_collector: T::AccountId,
repay_target: Balance
) -> Self
Create a call with the variant create_pool
.
sourcepub fn new_call_variant_update_pool_data(
pool_id: <T as Config>::AccountId,
pool_owner: Option<T::AccountId>,
start: Option<T::BlockNumber>,
end: Option<T::BlockNumber>,
initial_weight: Option<LBPWeight>,
final_weight: Option<LBPWeight>,
fee: Option<(u32, u32)>,
fee_collector: Option<T::AccountId>,
repay_target: Option<Balance>
) -> Self
pub fn new_call_variant_update_pool_data(
pool_id: <T as Config>::AccountId,
pool_owner: Option<T::AccountId>,
start: Option<T::BlockNumber>,
end: Option<T::BlockNumber>,
initial_weight: Option<LBPWeight>,
final_weight: Option<LBPWeight>,
fee: Option<(u32, u32)>,
fee_collector: Option<T::AccountId>,
repay_target: Option<Balance>
) -> Self
Create a call with the variant update_pool_data
.
sourcepub fn new_call_variant_add_liquidity(
amount_a: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance),
amount_b: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance)
) -> Self
pub fn new_call_variant_add_liquidity(
amount_a: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance),
amount_b: (AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance)
) -> Self
Create a call with the variant add_liquidity
.
sourcepub fn new_call_variant_remove_liquidity(
pool_id: <T as Config>::AccountId
) -> Self
pub fn new_call_variant_remove_liquidity(
pool_id: <T as Config>::AccountId
) -> Self
Create a call with the variant remove_liquidity
.
sourcepub fn new_call_variant_sell(
asset_in: AssetId,
asset_out: AssetId,
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
) -> Self
pub fn new_call_variant_sell(
asset_in: AssetId,
asset_out: AssetId,
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
) -> Self
Create a call with the variant sell
.
sourcepub fn new_call_variant_buy(
asset_out: AssetId,
asset_in: AssetId,
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
) -> Self
pub fn new_call_variant_buy(
asset_out: AssetId,
asset_in: AssetId,
amount: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance,
max_limit: <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance
) -> Self
Create a call with the variant buy
.
Trait Implementations§
source§impl<T: Config> Decode for Call<T>
impl<T: Config> Decode for Call<T>
source§impl<T: Config> Encode for Call<T>
impl<T: Config> Encode for Call<T>
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere
F: FnOnce(&[u8]) -> R,
source§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T: Config> GetCallName for Call<T>
impl<T: Config> GetCallName for Call<T>
source§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
source§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
source§impl<T: Config> GetDispatchInfo for Call<T>
impl<T: Config> GetDispatchInfo for Call<T>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
<T as Config>::AccountId: TypeInfo + 'static,
Option<T::AccountId>: TypeInfo + 'static,
Option<T::BlockNumber>: TypeInfo + 'static,
(AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance): TypeInfo + 'static,
<<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
T: Config + 'static,
impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
<T as Config>::AccountId: TypeInfo + 'static,
Option<T::AccountId>: TypeInfo + 'static,
Option<T::BlockNumber>: TypeInfo + 'static,
(AssetId, <<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance): TypeInfo + 'static,
<<T as Config>::MultiCurrency as MultiCurrency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
T: Config + 'static,
source§impl<T: Config> UnfilteredDispatchable for Call<T>
impl<T: Config> UnfilteredDispatchable for Call<T>
§type Origin = <T as Config>::Origin
type Origin = <T as Config>::Origin
frame_system::Config::Origin
).source§fn dispatch_bypass_filter(
self,
origin: Self::Origin
) -> DispatchResultWithPostInfo
fn dispatch_bypass_filter(
self,
origin: Self::Origin
) -> DispatchResultWithPostInfo
impl<T: Config> EncodeLike<Call<T>> for Call<T>
impl<T: Config> Eq for Call<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Call<T>where
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<T as Config>::BlockNumber: RefUnwindSafe,
impl<T> Send for Call<T>where
T: Send,
impl<T> Sync for Call<T>where
T: Sync,
impl<T> Unpin for Call<T>where
T: Unpin,
<T as Config>::AccountId: Unpin,
<T as Config>::BlockNumber: Unpin,
impl<T> UnwindSafe for Call<T>where
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<T as Config>::BlockNumber: UnwindSafe,
Blanket Implementations§
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read moresource§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
source§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
fn blake2_128(&self) -> [u8; 16]
fn blake2_256(&self) -> [u8; 32]
fn blake2_128_concat(&self) -> Vec<u8, Global> ⓘ
fn twox_128(&self) -> [u8; 16]
fn twox_256(&self) -> [u8; 32]
fn twox_64_concat(&self) -> Vec<u8, Global> ⓘ
fn identity(&self) -> Vec<u8, Global> ⓘ
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, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
impl<T, Outer> IsWrappedBy<Outer> for Twhere
Outer: AsRef<T> + AsMut<T> + From<T>,
T: From<Outer>,
source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§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 moresource§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 moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read moresource§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Deref::Target
of a value. Read moresource§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.source§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. Read moresource§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds. Read moresource§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds. Read moresource§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.