pub trait SendXcm {
    // Required method
    fn send_xcm(
        destination: impl Into<MultiLocation>,
        message: Xcm<()>
    ) -> Result<(), SendError>;
}
Expand description

Utility for sending an XCM message.

These can be amalgamated in tuples to form sophisticated routing systems. In tuple format, each router might return CannotReachDestination to pass the execution to the next sender item. Note that each CannotReachDestination might alter the destination and the XCM message for to the next router.

Example


/// A sender that only passes the message through and does nothing.
struct Sender1;
impl SendXcm for Sender1 {
    fn send_xcm(destination: impl Into<MultiLocation>, message: Xcm<()>) -> SendResult {
        return Err(SendError::CannotReachDestination(destination.into(), message))
    }
}

/// A sender that accepts a message that has an X2 junction, otherwise stops the routing.
struct Sender2;
impl SendXcm for Sender2 {
    fn send_xcm(destination: impl Into<MultiLocation>, message: Xcm<()>) -> SendResult {
        if let MultiLocation { parents: 0, interior: X2(j1, j2) } = destination.into() {
            Ok(())
        } else {
            Err(SendError::Unroutable)
        }
    }
}

/// A sender that accepts a message from a parent, passing through otherwise.
struct Sender3;
impl SendXcm for Sender3 {
    fn send_xcm(destination: impl Into<MultiLocation>, message: Xcm<()>) -> SendResult {
        let destination = destination.into();
        match destination {
            MultiLocation { parents: 1, interior: Here } => Ok(()),
            _ => Err(SendError::CannotReachDestination(destination, message)),
        }
    }
}

// A call to send via XCM. We don't really care about this.
let call: Vec<u8> = ().encode();
let message = Xcm(vec![Instruction::Transact {
    origin_type: OriginKind::Superuser,
    require_weight_at_most: 0,
    call: call.into(),
}]);

assert!(
    // Sender2 will block this.
    <(Sender1, Sender2, Sender3) as SendXcm>::send_xcm(Parent, message.clone())
        .is_err()
);

assert!(
    // Sender3 will catch this.
    <(Sender1, Sender3) as SendXcm>::send_xcm(Parent, message.clone())
        .is_ok()
);

Required Methods§

source

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

Send an XCM message to a given destination.

If it is not a destination which can be reached with this type but possibly could by others, then it MUST return CannotReachDestination. Any other error will cause the tuple implementation to exit early without trying other type fields.

Implementations on Foreign Types§

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1> SendXcm for (TupleElement0, TupleElement1)where TupleElement0: SendXcm, TupleElement1: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm, TupleElement24: SendXcm, TupleElement25: SendXcm, TupleElement26: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm, TupleElement24: SendXcm, TupleElement25: SendXcm, TupleElement26: SendXcm, TupleElement27: SendXcm, TupleElement28: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm, TupleElement24: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl SendXcm for ()

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27, TupleElement28, TupleElement29)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm, TupleElement24: SendXcm, TupleElement25: SendXcm, TupleElement26: SendXcm, TupleElement27: SendXcm, TupleElement28: SendXcm, TupleElement29: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm, TupleElement24: SendXcm, TupleElement25: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0> SendXcm for (TupleElement0,)where TupleElement0: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23, TupleElement24, TupleElement25, TupleElement26, TupleElement27)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm, TupleElement24: SendXcm, TupleElement25: SendXcm, TupleElement26: SendXcm, TupleElement27: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2> SendXcm for (TupleElement0, TupleElement1, TupleElement2)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17, TupleElement18, TupleElement19, TupleElement20, TupleElement21, TupleElement22, TupleElement23)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm, TupleElement18: SendXcm, TupleElement19: SendXcm, TupleElement20: SendXcm, TupleElement21: SendXcm, TupleElement22: SendXcm, TupleElement23: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

source§

impl<TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17> SendXcm for (TupleElement0, TupleElement1, TupleElement2, TupleElement3, TupleElement4, TupleElement5, TupleElement6, TupleElement7, TupleElement8, TupleElement9, TupleElement10, TupleElement11, TupleElement12, TupleElement13, TupleElement14, TupleElement15, TupleElement16, TupleElement17)where TupleElement0: SendXcm, TupleElement1: SendXcm, TupleElement2: SendXcm, TupleElement3: SendXcm, TupleElement4: SendXcm, TupleElement5: SendXcm, TupleElement6: SendXcm, TupleElement7: SendXcm, TupleElement8: SendXcm, TupleElement9: SendXcm, TupleElement10: SendXcm, TupleElement11: SendXcm, TupleElement12: SendXcm, TupleElement13: SendXcm, TupleElement14: SendXcm, TupleElement15: SendXcm, TupleElement16: SendXcm, TupleElement17: SendXcm,

source§

fn send_xcm( destination: impl Into<MultiLocation>, message: Xcm<()> ) -> Result<(), SendError>

Implementors§