Struct xcm::v1::MultiLocation
source · Expand description
A relative path between state-bearing consensus systems.
A location in a consensus system is defined as an isolatable state machine held within global consensus. The location in question need not have a sophisticated consensus algorithm of its own; a single account within Ethereum, for example, could be considered a location.
A very-much non-exhaustive list of types of location include:
- A (normal, layer-1) block chain, e.g. the Bitcoin mainnet or a parachain.
- A layer-0 super-chain, e.g. the Polkadot Relay chain.
- A layer-2 smart contract, e.g. an ERC-20 on Ethereum.
- A logical functional component of a chain, e.g. a single instance of a pallet on a Frame-based Substrate chain.
- An account.
A MultiLocation
is a relative identifier, meaning that it can only be used to define the
relative path between two locations, and cannot generally be used to refer to a location
universally. It is comprised of an integer number of parents specifying the number of times to
“escape” upwards into the containing consensus system and then a number of junctions, each
diving down and specifying some interior portion of state (which may be considered a
“sub-consensus” system).
This specific MultiLocation
implementation uses a Junctions
datatype which is a Rust enum
in order to make pattern matching easier. There are occasions where it is important to ensure
that a value is strictly an interior location, in those cases, Junctions
may be used.
The MultiLocation
value of Null
simply refers to the interpreting consensus system.
Fields§
§parents: u8
The number of parent junctions at the beginning of this MultiLocation
.
interior: Junctions
The interior (i.e. non-parent) junctions that this MultiLocation
contains.
Implementations§
source§impl MultiLocation
impl MultiLocation
sourcepub fn new(parents: u8, junctions: Junctions) -> MultiLocation
pub fn new(parents: u8, junctions: Junctions) -> MultiLocation
Creates a new MultiLocation
with the given number of parents and interior junctions.
sourcepub fn versioned(self) -> VersionedMultiLocation
pub fn versioned(self) -> VersionedMultiLocation
Consume self
and return the equivalent VersionedMultiLocation
value.
sourcepub const fn here() -> MultiLocation
pub const fn here() -> MultiLocation
Creates a new MultiLocation
with 0 parents and a Here
interior.
The resulting MultiLocation
can be interpreted as the “current consensus system”.
sourcepub const fn parent() -> MultiLocation
pub const fn parent() -> MultiLocation
Creates a new MultiLocation
which evaluates to the parent context.
sourcepub const fn grandparent() -> MultiLocation
pub const fn grandparent() -> MultiLocation
Creates a new MultiLocation
which evaluates to the grand parent context.
sourcepub const fn ancestor(parents: u8) -> MultiLocation
pub const fn ancestor(parents: u8) -> MultiLocation
Creates a new MultiLocation
with parents
and an empty (Here
) interior.
sourcepub const fn is_here(&self) -> bool
pub const fn is_here(&self) -> bool
Whether the MultiLocation
has no parents and has a Here
interior.
sourcepub fn interior_mut(&mut self) -> &mut Junctions
pub fn interior_mut(&mut self) -> &mut Junctions
Return a mutable reference to the interior field.
sourcepub const fn parent_count(&self) -> u8
pub const fn parent_count(&self) -> u8
Returns the number of Parent
junctions at the beginning of self
.
sourcepub const fn contains_parents_only(&self, count: u8) -> bool
pub const fn contains_parents_only(&self, count: u8) -> bool
Returns boolean indicating whether self
contains only the specified amount of
parents and no interior junctions.
sourcepub fn first_interior(&self) -> Option<&Junction>
pub fn first_interior(&self) -> Option<&Junction>
Returns the first interior junction, or None
if the location is empty or contains only
parents.
sourcepub fn last(&self) -> Option<&Junction>
pub fn last(&self) -> Option<&Junction>
Returns last junction, or None
if the location is empty or contains only parents.
sourcepub fn split_first_interior(self) -> (MultiLocation, Option<Junction>)
pub fn split_first_interior(self) -> (MultiLocation, Option<Junction>)
Splits off the first interior junction, returning the remaining suffix (first item in tuple)
and the first element (second item in tuple) or None
if it was empty.
sourcepub fn split_last_interior(self) -> (MultiLocation, Option<Junction>)
pub fn split_last_interior(self) -> (MultiLocation, Option<Junction>)
Splits off the last interior junction, returning the remaining prefix (first item in tuple)
and the last element (second item in tuple) or None
if it was empty or if self
only
contains parents.
sourcepub fn push_interior(&mut self, new: Junction) -> Result<(), Junction>
pub fn push_interior(&mut self, new: Junction) -> Result<(), Junction>
Mutates self
, suffixing its interior junctions with new
. Returns Err
with new
in
case of overflow.
sourcepub fn push_front_interior(&mut self, new: Junction) -> Result<(), Junction>
pub fn push_front_interior(&mut self, new: Junction) -> Result<(), Junction>
Mutates self
, prefixing its interior junctions with new
. Returns Err
with new
in
case of overflow.
sourcepub fn pushed_with_interior(
self,
new: Junction
) -> Result<Self, (Self, Junction)>
pub fn pushed_with_interior(
self,
new: Junction
) -> Result<Self, (Self, Junction)>
Consumes self
and returns a MultiLocation
suffixed with new
, or an Err
with theoriginal value of
self
in case of overflow.
sourcepub fn pushed_front_with_interior(
self,
new: Junction
) -> Result<Self, (Self, Junction)>
pub fn pushed_front_with_interior(
self,
new: Junction
) -> Result<Self, (Self, Junction)>
Consumes self
and returns a MultiLocation
prefixed with new
, or an Err
with the original value of
self
in case of overflow.
sourcepub fn at(&self, i: usize) -> Option<&Junction>
pub fn at(&self, i: usize) -> Option<&Junction>
Returns the junction at index i
, or None
if the location is a parent or if the location
does not contain that many elements.
sourcepub fn at_mut(&mut self, i: usize) -> Option<&mut Junction>
pub fn at_mut(&mut self, i: usize) -> Option<&mut Junction>
Returns a mutable reference to the junction at index i
, or None
if the location is a
parent or if it doesn’t contain that many elements.
sourcepub fn dec_parent(&mut self)
pub fn dec_parent(&mut self)
Decrements the parent count by 1.
sourcepub fn take_first_interior(&mut self) -> Option<Junction>
pub fn take_first_interior(&mut self) -> Option<Junction>
Removes the first interior junction from self
, returning it
(or None
if it was empty or if self
contains only parents).
sourcepub fn take_last(&mut self) -> Option<Junction>
pub fn take_last(&mut self) -> Option<Junction>
Removes the last element from interior
, returning it (or None
if it was empty or if
self
only contains parents).
sourcepub fn match_and_split(&self, prefix: &MultiLocation) -> Option<&Junction>
pub fn match_and_split(&self, prefix: &MultiLocation) -> Option<&Junction>
Ensures that self
has the same number of parents as prefix
, its junctions begins with
the junctions of prefix
and that it has a single Junction
item following.
If so, returns a reference to this Junction
item.
Example
let mut m = MultiLocation::new(1, X2(PalletInstance(3), OnlyChild));
assert_eq!(
m.match_and_split(&MultiLocation::new(1, X1(PalletInstance(3)))),
Some(&OnlyChild),
);
assert_eq!(m.match_and_split(&MultiLocation::new(1, Here)), None);
sourcepub fn append_with(&mut self, suffix: Junctions) -> Result<(), Junctions>
pub fn append_with(&mut self, suffix: Junctions) -> Result<(), Junctions>
Mutate self
so that it is suffixed with suffix
.
Does not modify self
and returns Err
with suffix
in case of overflow.
Example
let mut m = MultiLocation::new(1, X1(Parachain(21)));
assert_eq!(m.append_with(X1(PalletInstance(3))), Ok(()));
assert_eq!(m, MultiLocation::new(1, X2(Parachain(21), PalletInstance(3))));
sourcepub fn prepend_with(
&mut self,
prefix: MultiLocation
) -> Result<(), MultiLocation>
pub fn prepend_with(
&mut self,
prefix: MultiLocation
) -> Result<(), MultiLocation>
Mutate self
so that it is prefixed with prefix
.
Does not modify self
and returns Err
with prefix
in case of overflow.
Example
let mut m = MultiLocation::new(2, X1(PalletInstance(3)));
assert_eq!(m.prepend_with(MultiLocation::new(1, X2(Parachain(21), OnlyChild))), Ok(()));
assert_eq!(m, MultiLocation::new(1, X1(PalletInstance(3))));
sourcepub fn reanchor(
&mut self,
target: &MultiLocation,
ancestry: &MultiLocation
) -> Result<(), ()>
pub fn reanchor(
&mut self,
target: &MultiLocation,
ancestry: &MultiLocation
) -> Result<(), ()>
Mutate self
so that it represents the same location from the point of view of target
.
The context of self
is provided as ancestry
.
Does not modify self
in case of overflow.
sourcepub fn inverted(&self, target: &MultiLocation) -> Result<MultiLocation, ()>
pub fn inverted(&self, target: &MultiLocation) -> Result<MultiLocation, ()>
Treating self
as a context, determine how it would be referenced by a target
location.
Trait Implementations§
source§impl Clone for MultiLocation
impl Clone for MultiLocation
source§fn clone(&self) -> MultiLocation
fn clone(&self) -> MultiLocation
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for MultiLocation
impl Debug for MultiLocation
source§impl Decode for MultiLocation
impl Decode for MultiLocation
source§impl Default for MultiLocation
impl Default for MultiLocation
source§impl Encode for MultiLocation
impl Encode for MultiLocation
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 From<()> for MultiLocation
impl From<()> for MultiLocation
source§impl From<(Ancestor, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Ancestor, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Ancestor, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Ancestor, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Ancestor, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Ancestor, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Junction,)> for MultiLocation
impl From<(Junction,)> for MultiLocation
source§impl From<(Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junctions)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junctions)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junction)> for MultiLocation
source§impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junctions)> for MultiLocation
impl From<(Parent, Parent, Parent, Parent, Parent, Parent, Parent, Parent, Junctions)> for MultiLocation
source§impl From<(u8, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(u8, Junction, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(u8, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(u8, Junction, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(u8, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
impl From<(u8, Junction, Junction, Junction, Junction, Junction, Junction)> for MultiLocation
source§impl From<(u8,)> for MultiLocation
impl From<(u8,)> for MultiLocation
source§impl From<Ancestor> for MultiLocation
impl From<Ancestor> for MultiLocation
source§impl From<AncestorThen> for MultiLocation
impl From<AncestorThen> for MultiLocation
source§fn from(AncestorThen: AncestorThen) -> Self
fn from(AncestorThen: AncestorThen) -> Self
source§impl From<Junction> for MultiLocation
impl From<Junction> for MultiLocation
source§impl From<Junctions> for MultiLocation
impl From<Junctions> for MultiLocation
source§impl From<Parent> for MultiLocation
impl From<Parent> for MultiLocation
source§impl From<ParentThen> for MultiLocation
impl From<ParentThen> for MultiLocation
source§fn from(ParentThen: ParentThen) -> Self
fn from(ParentThen: ParentThen) -> Self
source§impl MaxEncodedLen for MultiLocation
impl MaxEncodedLen for MultiLocation
source§fn max_encoded_len() -> usize
fn max_encoded_len() -> usize
source§impl Ord for MultiLocation
impl Ord for MultiLocation
source§fn cmp(&self, other: &MultiLocation) -> Ordering
fn cmp(&self, other: &MultiLocation) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq<MultiLocation> for MultiLocation
impl PartialEq<MultiLocation> for MultiLocation
source§fn eq(&self, other: &MultiLocation) -> bool
fn eq(&self, other: &MultiLocation) -> bool
source§impl PartialOrd<MultiLocation> for MultiLocation
impl PartialOrd<MultiLocation> for MultiLocation
source§fn partial_cmp(&self, other: &MultiLocation) -> Option<Ordering>
fn partial_cmp(&self, other: &MultiLocation) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl TryFrom<MultiLocation> for Junctions
impl TryFrom<MultiLocation> for Junctions
source§impl TryFrom<MultiLocation> for MultiLocation
impl TryFrom<MultiLocation> for MultiLocation
source§impl TryFrom<MultiLocation> for MultiLocation
impl TryFrom<MultiLocation> for MultiLocation
source§impl TypeInfo for MultiLocation
impl TypeInfo for MultiLocation
impl EncodeLike<MultiLocation> for MultiLocation
impl Eq for MultiLocation
impl StructuralEq for MultiLocation
impl StructuralPartialEq for MultiLocation
Auto Trait Implementations§
impl RefUnwindSafe for MultiLocation
impl Send for MultiLocation
impl Sync for MultiLocation
impl Unpin for MultiLocation
impl UnwindSafe for MultiLocation
Blanket Implementations§
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> 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<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> 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
.