Safe desired targets call (#12826)

* checked call for desired targets

* fix compile

* fmt

* fix tests

* cleaner with and_then
This commit is contained in:
Ankan
2022-12-10 23:52:23 +01:00
committed by GitHub
parent 2f2e481d72
commit 1320daa33e
3 changed files with 18 additions and 18 deletions
@@ -386,15 +386,13 @@ pub trait ElectionProviderBase {
/// checked call to `Self::DataProvider::desired_targets()` ensuring the value never exceeds
/// [`Self::MaxWinners`].
fn desired_targets_checked() -> data_provider::Result<u32> {
match Self::DataProvider::desired_targets() {
Ok(desired_targets) =>
if desired_targets <= Self::MaxWinners::get() {
Ok(desired_targets)
} else {
Err("desired_targets should not be greater than MaxWinners")
},
Err(e) => Err(e),
}
Self::DataProvider::desired_targets().and_then(|desired_targets| {
if desired_targets <= Self::MaxWinners::get() {
Ok(desired_targets)
} else {
Err("desired_targets must not be greater than MaxWinners.")
}
})
}
}