Skip to main content

CheckedPow

Trait CheckedPow 

Source
pub trait CheckedPow: Sized + Mul<Self> {
    // Required method
    fn checked_pow(self, exp: u32) -> Option<<Self as Mul<Self>>::Output>;
}
Expand description

Performs exponentiation, returning None if overflow occurred.

Required Methods§

Source

fn checked_pow(self, exp: u32) -> Option<<Self as Mul<Self>>::Output>

Checked exponentiation. Computes self.pow(exp), returning None if overflow occurred.

Note that 0⁰ returns Some(1), matching the inherent checked_pow on the primitive integer types.

§Examples
use const_num_traits::CheckedPow;

assert_eq!(CheckedPow::checked_pow(2i8, 4), Some(16));
assert_eq!(CheckedPow::checked_pow(7i8, 8), None);
assert_eq!(CheckedPow::checked_pow(0u32, 0), Some(1));

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl CheckedPow for i8

Source§

fn checked_pow(self, rhs: u32) -> Option<i8>

Source§

impl CheckedPow for i16

Source§

fn checked_pow(self, rhs: u32) -> Option<i16>

Source§

impl CheckedPow for i32

Source§

fn checked_pow(self, rhs: u32) -> Option<i32>

Source§

impl CheckedPow for i64

Source§

fn checked_pow(self, rhs: u32) -> Option<i64>

Source§

impl CheckedPow for i128

Source§

fn checked_pow(self, rhs: u32) -> Option<i128>

Source§

impl CheckedPow for isize

Source§

fn checked_pow(self, rhs: u32) -> Option<isize>

Source§

impl CheckedPow for u8

Source§

fn checked_pow(self, rhs: u32) -> Option<u8>

Source§

impl CheckedPow for u16

Source§

fn checked_pow(self, rhs: u32) -> Option<u16>

Source§

impl CheckedPow for u32

Source§

fn checked_pow(self, rhs: u32) -> Option<u32>

Source§

impl CheckedPow for u64

Source§

fn checked_pow(self, rhs: u32) -> Option<u64>

Source§

impl CheckedPow for u128

Source§

fn checked_pow(self, rhs: u32) -> Option<u128>

Source§

impl CheckedPow for usize

Source§

fn checked_pow(self, rhs: u32) -> Option<usize>

Implementors§