XCM builder pattern (#2107)
Added a proc macro to be able to write XCMs using the builder pattern.
This means we go from having to do this:
```rust
let message: Xcm<()> = Xcm(vec![
WithdrawAsset(assets),
BuyExecution { fees: asset, weight_limit: Unlimited },
DepositAsset { assets, beneficiary },
]);
```
to this:
```rust
let message: Xcm<()> = Xcm::builder()
.withdraw_asset(assets)
.buy_execution(asset, Unlimited),
.deposit_asset(assets, beneficiary)
.build();
```
---------
Co-authored-by:
Keith Yeung <kungfukeith11@gmail.com>
Co-authored-by: command-bot <>
Showing
- Cargo.lock 1 addition, 0 deletionsCargo.lock
- polkadot/xcm/procedural/Cargo.toml 5 additions, 0 deletionspolkadot/xcm/procedural/Cargo.toml
- polkadot/xcm/procedural/src/builder_pattern.rs 115 additions, 0 deletionspolkadot/xcm/procedural/src/builder_pattern.rs
- polkadot/xcm/procedural/src/lib.rs 13 additions, 0 deletionspolkadot/xcm/procedural/src/lib.rs
- polkadot/xcm/procedural/tests/ui.rs 32 additions, 0 deletionspolkadot/xcm/procedural/tests/ui.rs
- polkadot/xcm/procedural/tests/ui/builder_pattern.rs 25 additions, 0 deletionspolkadot/xcm/procedural/tests/ui/builder_pattern.rs
- polkadot/xcm/procedural/tests/ui/builder_pattern.stderr 5 additions, 0 deletionspolkadot/xcm/procedural/tests/ui/builder_pattern.stderr
- polkadot/xcm/src/v3/mod.rs 8 additions, 1 deletionpolkadot/xcm/src/v3/mod.rs
- polkadot/xcm/xcm-simulator/example/src/lib.rs 19 additions, 0 deletionspolkadot/xcm/xcm-simulator/example/src/lib.rs
- prdoc/pr_2107.prdoc 24 additions, 0 deletionsprdoc/pr_2107.prdoc
Please register or sign in to comment