widemul

Trait for performing multiplication that results in a wider type. This module provides the WideMul trait which enables multiplication operations that return a result type with double the bit width of the input types. This is particularly useful when you need to perform multiplication without worrying about overflow, as the result type can hold the full range of possible values. # Examples

use core::num::traits::WideMul;

// Multiplying two `u8` values to get a `u16` result
let a: u8 = 200;
let b: u8 = 100;
let result: u16 = a.wide_mul(b);
assert!(result == 20000);

// Multiplying two `u128` values to get a `u256` result
let x: u128 = 0xffffffffffffffffffffffffffffffff; // max u128
let y: u128 = 2;
let wide_result = x.wide_mul(y); // No overflow occurs
assert!(wide_result == 0x01fffffffffffffffffffffffffffffffe);

Available Implementations The trait is implemented for the following type pairs: - i8i16 - i16i32 - i32i64 - i64i128 - u8u16 - u16u32 - u32u64 - u64u128 - u128u256 - u256u512

Fully qualified path: core::num::traits::ops::widemul

Traits