From b43399d661989d4fd5f74ee4ac51cf1af8f9c4c4 Mon Sep 17 00:00:00 2001 From: bgallois <benjamin@gallois.cc> Date: Thu, 4 Jan 2024 16:32:13 +0100 Subject: [PATCH] refactor using if let chaining --- xtask/src/gen_doc.rs | 35 +++++++++++------------------------ xtask/src/main.rs | 2 ++ 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/xtask/src/gen_doc.rs b/xtask/src/gen_doc.rs index 7dc7631b0..13ce53a7a 100644 --- a/xtask/src/gen_doc.rs +++ b/xtask/src/gen_doc.rs @@ -264,47 +264,34 @@ pub(super) fn gen_doc() -> Result<()> { // Compute the weights from the weight files. // Require the `pallet_xxx.rs` weights, // the `paritydb_weights.rs` and the `extrinsic_weights.rs` - // TODO SIMPLIFY IF POSSIBLE!!! let max_weight = if let frame_metadata::RuntimeMetadata::V14(metadata_v14) = metadata.1 { let block_weights = metadata_v14 .pallets .iter() .find(|pallet| pallet.name == "System") - .unwrap() + .expect("Can't find System pallet metadata") .constants .iter() .find(|constant| constant.name == "BlockWeights") - .unwrap(); + .expect("Can't find BlockWeights"); let block_weights = scale_value::scale::decode_as_type( &mut &*block_weights.value, block_weights.ty.id, &metadata_v14.types, ) - .unwrap() + .expect("Can't decode max_weight") .value; let max_weight: u128 = - if let scale_value::ValueDef::Composite(scale_value::Composite::Named(i)) = - block_weights - { - if let scale_value::ValueDef::Composite(scale_value::Composite::Named(j)) = - &i.iter().find(|name| name.0 == "max_block").unwrap().1.value - { - if let scale_value::ValueDef::Primitive(scale_value::Primitive::U128(k)) = - &j.iter().find(|name| name.0 == "ref_time").unwrap().1.value - { - *k - } else { - 0u128 - } - } else { - 0u128 - } - } else { - 0u128 - }; - + if let scale_value::ValueDef::Composite(scale_value::Composite::Named(i)) = block_weights + && let scale_value::ValueDef::Composite(scale_value::Composite::Named(j)) = &i.iter().find(|name| name.0 == "max_block").unwrap().1.value + && let scale_value::ValueDef::Primitive(scale_value::Primitive::U128(k)) = &j.iter().find(|name| name.0 == "ref_time").unwrap().1.value + { + *k + } else { + 0u128 + }; max_weight } else { 0u128 diff --git a/xtask/src/main.rs b/xtask/src/main.rs index 331bab7a9..c6b201b9d 100644 --- a/xtask/src/main.rs +++ b/xtask/src/main.rs @@ -14,6 +14,8 @@ // You should have received a copy of the GNU Affero General Public License // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>. +#![feature(let_chains)] + mod gen_doc; mod release_runtime; -- GitLab