mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 14:37:57 +00:00
Remove Ord impl for Weights V2 and add comparison fns (#12183)
* Remove Ord impl for Weights V2 and add comparison fns * Remove TODO * Update frame/multisig/src/lib.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Update frame/election-provider-multi-phase/src/unsigned.rs Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove unused import * cargo fmt * Fix tests * Fix more tests * cargo fmt * Fix more tests * Update frame/contracts/src/wasm/mod.rs Co-authored-by: Alexander Theißen <alex.theissen@me.com> * Update weight benchmarking templates Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> Co-authored-by: Alexander Theißen <alex.theissen@me.com>
This commit is contained in:
@@ -68,8 +68,14 @@ mod test_weights {
|
||||
let w = super::BlockExecutionWeight::get();
|
||||
|
||||
// At least 100 µs.
|
||||
assert!(w >= 100u32 * constants::WEIGHT_PER_MICROS, "Weight should be at least 100 µs.");
|
||||
assert!(
|
||||
w.ref_time() >= 100u64 * constants::WEIGHT_PER_MICROS.ref_time(),
|
||||
"Weight should be at least 100 µs."
|
||||
);
|
||||
// At most 50 ms.
|
||||
assert!(w <= 50u32 * constants::WEIGHT_PER_MILLIS, "Weight should be at most 50 ms.");
|
||||
assert!(
|
||||
w.ref_time() <= 50u64 * constants::WEIGHT_PER_MILLIS.ref_time(),
|
||||
"Weight should be at most 50 ms."
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,8 +68,14 @@ mod test_weights {
|
||||
let w = super::ExtrinsicBaseWeight::get();
|
||||
|
||||
// At least 10 µs.
|
||||
assert!(w >= 10u32 * constants::WEIGHT_PER_MICROS, "Weight should be at least 10 µs.");
|
||||
assert!(
|
||||
w.ref_time() >= 10u64 * constants::WEIGHT_PER_MICROS.ref_time(),
|
||||
"Weight should be at least 10 µs."
|
||||
);
|
||||
// At most 1 ms.
|
||||
assert!(w <= constants::WEIGHT_PER_MILLIS, "Weight should be at most 1 ms.");
|
||||
assert!(
|
||||
w.ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(),
|
||||
"Weight should be at most 1 ms."
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,20 +42,20 @@ pub mod constants {
|
||||
fn sane() {
|
||||
// At least 1 µs.
|
||||
assert!(
|
||||
W::get().reads(1) >= constants::WEIGHT_PER_MICROS,
|
||||
W::get().reads(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(),
|
||||
"Read weight should be at least 1 µs."
|
||||
);
|
||||
assert!(
|
||||
W::get().writes(1) >= constants::WEIGHT_PER_MICROS,
|
||||
W::get().writes(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(),
|
||||
"Write weight should be at least 1 µs."
|
||||
);
|
||||
// At most 1 ms.
|
||||
assert!(
|
||||
W::get().reads(1) <= constants::WEIGHT_PER_MILLIS,
|
||||
W::get().reads(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(),
|
||||
"Read weight should be at most 1 ms."
|
||||
);
|
||||
assert!(
|
||||
W::get().writes(1) <= constants::WEIGHT_PER_MILLIS,
|
||||
W::get().writes(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(),
|
||||
"Write weight should be at most 1 ms."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -42,20 +42,20 @@ pub mod constants {
|
||||
fn sane() {
|
||||
// At least 1 µs.
|
||||
assert!(
|
||||
W::get().reads(1) >= constants::WEIGHT_PER_MICROS,
|
||||
W::get().reads(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(),
|
||||
"Read weight should be at least 1 µs."
|
||||
);
|
||||
assert!(
|
||||
W::get().writes(1) >= constants::WEIGHT_PER_MICROS,
|
||||
W::get().writes(1).ref_time() >= constants::WEIGHT_PER_MICROS.ref_time(),
|
||||
"Write weight should be at least 1 µs."
|
||||
);
|
||||
// At most 1 ms.
|
||||
assert!(
|
||||
W::get().reads(1) <= constants::WEIGHT_PER_MILLIS,
|
||||
W::get().reads(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(),
|
||||
"Read weight should be at most 1 ms."
|
||||
);
|
||||
assert!(
|
||||
W::get().writes(1) <= constants::WEIGHT_PER_MILLIS,
|
||||
W::get().writes(1).ref_time() <= constants::WEIGHT_PER_MILLIS.ref_time(),
|
||||
"Write weight should be at most 1 ms."
|
||||
);
|
||||
}
|
||||
|
||||
@@ -35,8 +35,6 @@ use super::*;
|
||||
Clone,
|
||||
RuntimeDebug,
|
||||
Default,
|
||||
Ord,
|
||||
PartialOrd,
|
||||
CompactAs,
|
||||
)]
|
||||
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
|
||||
@@ -163,6 +161,62 @@ impl Weight {
|
||||
pub const fn zero() -> Self {
|
||||
Self { ref_time: 0 }
|
||||
}
|
||||
|
||||
/// Returns true if any of `self`'s constituent weights is strictly greater than that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn any_gt(self, other: Self) -> bool {
|
||||
self.ref_time > other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if all of `self`'s constituent weights is strictly greater than that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn all_gt(self, other: Self) -> bool {
|
||||
self.ref_time > other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if any of `self`'s constituent weights is strictly less than that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn any_lt(self, other: Self) -> bool {
|
||||
self.ref_time < other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if all of `self`'s constituent weights is strictly less than that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn all_lt(self, other: Self) -> bool {
|
||||
self.ref_time < other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if any of `self`'s constituent weights is greater than or equal to that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn any_gte(self, other: Self) -> bool {
|
||||
self.ref_time >= other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if all of `self`'s constituent weights is greater than or equal to that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn all_gte(self, other: Self) -> bool {
|
||||
self.ref_time >= other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if any of `self`'s constituent weights is less than or equal to that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn any_lte(self, other: Self) -> bool {
|
||||
self.ref_time <= other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if all of `self`'s constituent weights is less than or equal to that of the
|
||||
/// `other`'s, otherwise returns false.
|
||||
pub const fn all_lte(self, other: Self) -> bool {
|
||||
self.ref_time <= other.ref_time
|
||||
}
|
||||
|
||||
/// Returns true if any of `self`'s constituent weights is equal to that of the `other`'s,
|
||||
/// otherwise returns false.
|
||||
pub const fn any_eq(self, other: Self) -> bool {
|
||||
self.ref_time == other.ref_time
|
||||
}
|
||||
|
||||
// NOTE: `all_eq` does not exist, as it's simply the `eq` method from the `PartialEq` trait.
|
||||
}
|
||||
|
||||
impl Zero for Weight {
|
||||
|
||||
Reference in New Issue
Block a user