Function num_traits::pow::checked_pow

source ·
pub fn checked_pow<T: Clone + One + CheckedMul>(
    base: T,
    exp: usize
) -> Option<T>
Expand description

Raises a value to the power of exp, returning None if an overflow occurred.

Note that 0⁰ (checked_pow(0, 0)) returns Some(1). Mathematically this is undefined.

Otherwise same as the pow function.


use num_traits::checked_pow;

assert_eq!(checked_pow(2i8, 4), Some(16));
assert_eq!(checked_pow(7i8, 8), None);
assert_eq!(checked_pow(7u32, 8), Some(5_764_801));
assert_eq!(checked_pow(0u32, 0), Some(1)); // Be aware if this case affect you