Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit 043a60b

Browse files
lemunozmbkchr
andauthored
Add ensure-ops family methods (#12967)
* add ensure-ops family methods * fix cargo doc * add EnsureOp and EnsureOpAssign meta traits * move ensure module and ArithmeticError to sp-arithmetic * fix doc examples * reexport ensure module content * ensure mod private * reexport to sp-runtime * fix doc example * remove into(). in doc examples, minor doc changes * remove return value from assign methods * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update primitives/arithmetic/src/traits.rs Co-authored-by: Bastian Köcher <git@kchr.de> * cargo fmt * Apply suggestions from code review * ".git/.scripts/fmt.sh" 1 Co-authored-by: Bastian Köcher <git@kchr.de> Co-authored-by: command-bot <>
1 parent 891d6a5 commit 043a60b

4 files changed

Lines changed: 564 additions & 27 deletions

File tree

primitives/arithmetic/src/lib.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,34 @@ pub use rational::{Rational128, RationalInfinite};
5050
use sp_std::{cmp::Ordering, fmt::Debug, prelude::*};
5151
use traits::{BaseArithmetic, One, SaturatedConversion, Unsigned, Zero};
5252

53+
use codec::{Decode, Encode};
54+
use scale_info::TypeInfo;
55+
56+
#[cfg(feature = "std")]
57+
use serde::{Deserialize, Serialize};
58+
59+
/// Arithmetic errors.
60+
#[derive(Eq, PartialEq, Clone, Copy, Encode, Decode, Debug, TypeInfo)]
61+
#[cfg_attr(feature = "std", derive(Serialize, Deserialize))]
62+
pub enum ArithmeticError {
63+
/// Underflow.
64+
Underflow,
65+
/// Overflow.
66+
Overflow,
67+
/// Division by zero.
68+
DivisionByZero,
69+
}
70+
71+
impl From<ArithmeticError> for &'static str {
72+
fn from(e: ArithmeticError) -> &'static str {
73+
match e {
74+
ArithmeticError::Underflow => "An underflow would occur",
75+
ArithmeticError::Overflow => "An overflow would occur",
76+
ArithmeticError::DivisionByZero => "Division by zero",
77+
}
78+
}
79+
}
80+
5381
/// Trait for comparing two numbers with an threshold.
5482
///
5583
/// Returns:

0 commit comments

Comments
 (0)