Trait sp_arithmetic::traits::EnsureInto
source · pub trait EnsureInto<T: PartialOrd + Zero>: TryInto<T> + PartialOrd + Zero {
// Provided method
fn ensure_into(self) -> Result<T, ArithmeticError> { ... }
}
Expand description
Similar to TryInto
but returning an ArithmeticError
error.
Provided Methods§
sourcefn ensure_into(self) -> Result<T, ArithmeticError>
fn ensure_into(self) -> Result<T, ArithmeticError>
Performs the conversion returning an ArithmeticError
if fails.
Similar to TryInto::try_into()
but returning an ArithmeticError
error
use sp_arithmetic::{traits::EnsureInto, ArithmeticError};
fn overflow() -> Result<(), ArithmeticError> {
let byte: u8 = 256u16.ensure_into()?;
Ok(())
}
fn underflow() -> Result<(), ArithmeticError> {
let byte: i8 = (-129i16).ensure_into()?;
Ok(())
}
assert_eq!(overflow(), Err(ArithmeticError::Overflow));
assert_eq!(underflow(), Err(ArithmeticError::Underflow));
Object Safety§
This trait is not object safe.