Trait no_std_compat::ops::Mul

1.0.0 · source ·
pub trait Mul<Rhs = Self> {
    type Output;

    // Required method
    fn mul(self, rhs: Rhs) -> Self::Output;
}
Expand description

The multiplication operator *.

Note that Rhs is Self by default, but this is not mandatory.

§Examples

§Multipliable rational numbers

use std::ops::Mul;

// By the fundamental theorem of arithmetic, rational numbers in lowest
// terms are unique. So, by keeping `Rational`s in reduced form, we can
// derive `Eq` and `PartialEq`.
#[derive(Debug, Eq, PartialEq)]
struct Rational {
    numerator: usize,
    denominator: usize,
}

impl Rational {
    fn new(numerator: usize, denominator: usize) -> Self {
        if denominator == 0 {
            panic!("Zero is an invalid denominator!");
        }

        // Reduce to lowest terms by dividing by the greatest common
        // divisor.
        let gcd = gcd(numerator, denominator);
        Self {
            numerator: numerator / gcd,
            denominator: denominator / gcd,
        }
    }
}

impl Mul for Rational {
    // The multiplication of rational numbers is a closed operation.
    type Output = Self;

    fn mul(self, rhs: Self) -> Self {
        let numerator = self.numerator * rhs.numerator;
        let denominator = self.denominator * rhs.denominator;
        Self::new(numerator, denominator)
    }
}

// Euclid's two-thousand-year-old algorithm for finding the greatest common
// divisor.
fn gcd(x: usize, y: usize) -> usize {
    let mut x = x;
    let mut y = y;
    while y != 0 {
        let t = y;
        y = x % y;
        x = t;
    }
    x
}

assert_eq!(Rational::new(1, 2), Rational::new(2, 4));
assert_eq!(Rational::new(2, 3) * Rational::new(3, 4),
           Rational::new(1, 2));

§Multiplying vectors by scalars as in linear algebra

use std::ops::Mul;

struct Scalar { value: usize }

#[derive(Debug, PartialEq)]
struct Vector { value: Vec<usize> }

impl Mul<Scalar> for Vector {
    type Output = Self;

    fn mul(self, rhs: Scalar) -> Self::Output {
        Self { value: self.value.iter().map(|v| v * rhs.value).collect() }
    }
}

let vector = Vector { value: vec![2, 4, 6] };
let scalar = Scalar { value: 3 };
assert_eq!(vector * scalar, Vector { value: vec![6, 12, 18] });

Required Associated Types§

1.0.0 · source

type Output

The resulting type after applying the * operator.

Required Methods§

1.0.0 · source

fn mul(self, rhs: Rhs) -> Self::Output

Performs the * operation.

§Example
assert_eq!(12 * 2, 24);

Implementors§

1.0.0 · source§

impl Mul for f16

§

type Output = f16

1.0.0 · source§

impl Mul for f32

§

type Output = f32

1.0.0 · source§

impl Mul for f64

§

type Output = f64

1.0.0 · source§

impl Mul for f128

§

type Output = f128

1.0.0 · source§

impl Mul for i8

§

type Output = i8

1.0.0 · source§

impl Mul for i16

§

type Output = i16

1.0.0 · source§

impl Mul for i32

§

type Output = i32

1.0.0 · source§

impl Mul for i64

§

type Output = i64

1.0.0 · source§

impl Mul for i128

§

type Output = i128

1.0.0 · source§

impl Mul for isize

1.0.0 · source§

impl Mul for u8

§

type Output = u8

1.0.0 · source§

impl Mul for u16

§

type Output = u16

1.0.0 · source§

impl Mul for u32

§

type Output = u32

1.0.0 · source§

impl Mul for u64

§

type Output = u64

1.0.0 · source§

impl Mul for u128

§

type Output = u128

1.0.0 · source§

impl Mul for usize

1.74.0 · source§

impl Mul for Saturating<i8>

1.74.0 · source§

impl Mul for Saturating<i16>

1.74.0 · source§

impl Mul for Saturating<i32>

1.74.0 · source§

impl Mul for Saturating<i64>

1.74.0 · source§

impl Mul for Saturating<i128>

1.74.0 · source§

impl Mul for Saturating<isize>

1.74.0 · source§

impl Mul for Saturating<u8>

1.74.0 · source§

impl Mul for Saturating<u16>

1.74.0 · source§

impl Mul for Saturating<u32>

1.74.0 · source§

impl Mul for Saturating<u64>

1.74.0 · source§

impl Mul for Saturating<u128>

1.74.0 · source§

impl Mul for Saturating<usize>

1.0.0 · source§

impl Mul for Wrapping<i8>

1.0.0 · source§

impl Mul for Wrapping<i16>

1.0.0 · source§

impl Mul for Wrapping<i32>

1.0.0 · source§

impl Mul for Wrapping<i64>

1.0.0 · source§

impl Mul for Wrapping<i128>

1.0.0 · source§

impl Mul for Wrapping<isize>

1.0.0 · source§

impl Mul for Wrapping<u8>

1.0.0 · source§

impl Mul for Wrapping<u16>

1.0.0 · source§

impl Mul for Wrapping<u32>

1.0.0 · source§

impl Mul for Wrapping<u64>

1.0.0 · source§

impl Mul for Wrapping<u128>

1.0.0 · source§

impl Mul for Wrapping<usize>

1.0.0 · source§

impl Mul<&f16> for &f16

§

type Output = <f16 as Mul>::Output

1.0.0 · source§

impl Mul<&f16> for f16

§

type Output = <f16 as Mul>::Output

1.0.0 · source§

impl Mul<&f32> for &f32

§

type Output = <f32 as Mul>::Output

1.0.0 · source§

impl Mul<&f32> for f32

§

type Output = <f32 as Mul>::Output

1.0.0 · source§

impl Mul<&f64> for &f64

§

type Output = <f64 as Mul>::Output

1.0.0 · source§

impl Mul<&f64> for f64

§

type Output = <f64 as Mul>::Output

1.0.0 · source§

impl Mul<&f128> for &f128

§

type Output = <f128 as Mul>::Output

1.0.0 · source§

impl Mul<&f128> for f128

§

type Output = <f128 as Mul>::Output

1.0.0 · source§

impl Mul<&i8> for &i8

§

type Output = <i8 as Mul>::Output

1.0.0 · source§

impl Mul<&i8> for i8

§

type Output = <i8 as Mul>::Output

1.0.0 · source§

impl Mul<&i16> for &i16

§

type Output = <i16 as Mul>::Output

1.0.0 · source§

impl Mul<&i16> for i16

§

type Output = <i16 as Mul>::Output

1.0.0 · source§

impl Mul<&i32> for &i32

§

type Output = <i32 as Mul>::Output

1.0.0 · source§

impl Mul<&i32> for i32

§

type Output = <i32 as Mul>::Output

1.0.0 · source§

impl Mul<&i64> for &i64

§

type Output = <i64 as Mul>::Output

1.0.0 · source§

impl Mul<&i64> for i64

§

type Output = <i64 as Mul>::Output

1.0.0 · source§

impl Mul<&i128> for &i128

§

type Output = <i128 as Mul>::Output

1.0.0 · source§

impl Mul<&i128> for i128

§

type Output = <i128 as Mul>::Output

1.0.0 · source§

impl Mul<&isize> for &isize

§

type Output = <isize as Mul>::Output

1.0.0 · source§

impl Mul<&isize> for isize

§

type Output = <isize as Mul>::Output

1.0.0 · source§

impl Mul<&u8> for &u8

§

type Output = <u8 as Mul>::Output

1.0.0 · source§

impl Mul<&u8> for u8

§

type Output = <u8 as Mul>::Output

1.0.0 · source§

impl Mul<&u16> for &u16

§

type Output = <u16 as Mul>::Output

1.0.0 · source§

impl Mul<&u16> for u16

§

type Output = <u16 as Mul>::Output

1.0.0 · source§

impl Mul<&u32> for &u32

§

type Output = <u32 as Mul>::Output

1.0.0 · source§

impl Mul<&u32> for u32

§

type Output = <u32 as Mul>::Output

1.0.0 · source§

impl Mul<&u64> for &u64

§

type Output = <u64 as Mul>::Output

1.0.0 · source§

impl Mul<&u64> for u64

§

type Output = <u64 as Mul>::Output

1.0.0 · source§

impl Mul<&u128> for &u128

§

type Output = <u128 as Mul>::Output

1.0.0 · source§

impl Mul<&u128> for u128

§

type Output = <u128 as Mul>::Output

1.0.0 · source§

impl Mul<&usize> for &usize

§

type Output = <usize as Mul>::Output

1.0.0 · source§

impl Mul<&usize> for usize

§

type Output = <usize as Mul>::Output

1.74.0 · source§

impl Mul<&Saturating<i8>> for &Saturating<i8>

1.74.0 · source§

impl Mul<&Saturating<i8>> for Saturating<i8>

1.74.0 · source§

impl Mul<&Saturating<i16>> for &Saturating<i16>

1.74.0 · source§

impl Mul<&Saturating<i16>> for Saturating<i16>

1.74.0 · source§

impl Mul<&Saturating<i32>> for &Saturating<i32>

1.74.0 · source§

impl Mul<&Saturating<i32>> for Saturating<i32>

1.74.0 · source§

impl Mul<&Saturating<i64>> for &Saturating<i64>

1.74.0 · source§

impl Mul<&Saturating<i64>> for Saturating<i64>

1.74.0 · source§

impl Mul<&Saturating<i128>> for &Saturating<i128>

1.74.0 · source§

impl Mul<&Saturating<i128>> for Saturating<i128>

1.74.0 · source§

impl Mul<&Saturating<isize>> for &Saturating<isize>

1.74.0 · source§

impl Mul<&Saturating<isize>> for Saturating<isize>

1.74.0 · source§

impl Mul<&Saturating<u8>> for &Saturating<u8>

1.74.0 · source§

impl Mul<&Saturating<u8>> for Saturating<u8>

1.74.0 · source§

impl Mul<&Saturating<u16>> for &Saturating<u16>

1.74.0 · source§

impl Mul<&Saturating<u16>> for Saturating<u16>

1.74.0 · source§

impl Mul<&Saturating<u32>> for &Saturating<u32>

1.74.0 · source§

impl Mul<&Saturating<u32>> for Saturating<u32>

1.74.0 · source§

impl Mul<&Saturating<u64>> for &Saturating<u64>

1.74.0 · source§

impl Mul<&Saturating<u64>> for Saturating<u64>

1.74.0 · source§

impl Mul<&Saturating<u128>> for &Saturating<u128>

1.74.0 · source§

impl Mul<&Saturating<u128>> for Saturating<u128>

1.74.0 · source§

impl Mul<&Saturating<usize>> for &Saturating<usize>

1.74.0 · source§

impl Mul<&Saturating<usize>> for Saturating<usize>

1.14.0 · source§

impl Mul<&Wrapping<i8>> for &Wrapping<i8>

§

type Output = <Wrapping<i8> as Mul>::Output

1.14.0 · source§

impl Mul<&Wrapping<i8>> for Wrapping<i8>

§

type Output = <Wrapping<i8> as Mul>::Output

1.14.0 · source§

impl Mul<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · source§

impl Mul<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · source§

impl Mul<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · source§

impl Mul<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · source§

impl Mul<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · source§

impl Mul<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · source§

impl Mul<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · source§

impl Mul<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · source§

impl Mul<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · source§

impl Mul<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · source§

impl Mul<&Wrapping<u8>> for &Wrapping<u8>

§

type Output = <Wrapping<u8> as Mul>::Output

1.14.0 · source§

impl Mul<&Wrapping<u8>> for Wrapping<u8>

§

type Output = <Wrapping<u8> as Mul>::Output

1.14.0 · source§

impl Mul<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · source§

impl Mul<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · source§

impl Mul<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · source§

impl Mul<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · source§

impl Mul<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · source§

impl Mul<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · source§

impl Mul<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · source§

impl Mul<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · source§

impl Mul<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · source§

impl Mul<&Wrapping<usize>> for Wrapping<usize>

1.3.0 · source§

impl Mul<u32> for Duration

1.31.0 · source§

impl Mul<Duration> for u32

1.0.0 · source§

impl<'a> Mul<f16> for &'a f16

§

type Output = <f16 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<f32> for &'a f32

§

type Output = <f32 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<f64> for &'a f64

§

type Output = <f64 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<f128> for &'a f128

§

type Output = <f128 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<i8> for &'a i8

§

type Output = <i8 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<i16> for &'a i16

§

type Output = <i16 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<i32> for &'a i32

§

type Output = <i32 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<i64> for &'a i64

§

type Output = <i64 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<i128> for &'a i128

§

type Output = <i128 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<isize> for &'a isize

§

type Output = <isize as Mul>::Output

1.0.0 · source§

impl<'a> Mul<u8> for &'a u8

§

type Output = <u8 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<u16> for &'a u16

§

type Output = <u16 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<u32> for &'a u32

§

type Output = <u32 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<u64> for &'a u64

§

type Output = <u64 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<u128> for &'a u128

§

type Output = <u128 as Mul>::Output

1.0.0 · source§

impl<'a> Mul<usize> for &'a usize

§

type Output = <usize as Mul>::Output

1.74.0 · source§

impl<'a> Mul<Saturating<i8>> for &'a Saturating<i8>

1.74.0 · source§

impl<'a> Mul<Saturating<i16>> for &'a Saturating<i16>

1.74.0 · source§

impl<'a> Mul<Saturating<i32>> for &'a Saturating<i32>

1.74.0 · source§

impl<'a> Mul<Saturating<i64>> for &'a Saturating<i64>

1.74.0 · source§

impl<'a> Mul<Saturating<i128>> for &'a Saturating<i128>

1.74.0 · source§

impl<'a> Mul<Saturating<isize>> for &'a Saturating<isize>

1.74.0 · source§

impl<'a> Mul<Saturating<u8>> for &'a Saturating<u8>

1.74.0 · source§

impl<'a> Mul<Saturating<u16>> for &'a Saturating<u16>

1.74.0 · source§

impl<'a> Mul<Saturating<u32>> for &'a Saturating<u32>

1.74.0 · source§

impl<'a> Mul<Saturating<u64>> for &'a Saturating<u64>

1.74.0 · source§

impl<'a> Mul<Saturating<u128>> for &'a Saturating<u128>

1.74.0 · source§

impl<'a> Mul<Saturating<usize>> for &'a Saturating<usize>

1.14.0 · source§

impl<'a> Mul<Wrapping<i8>> for &'a Wrapping<i8>

§

type Output = <Wrapping<i8> as Mul>::Output

1.14.0 · source§

impl<'a> Mul<Wrapping<i16>> for &'a Wrapping<i16>

1.14.0 · source§

impl<'a> Mul<Wrapping<i32>> for &'a Wrapping<i32>

1.14.0 · source§

impl<'a> Mul<Wrapping<i64>> for &'a Wrapping<i64>

1.14.0 · source§

impl<'a> Mul<Wrapping<i128>> for &'a Wrapping<i128>

1.14.0 · source§

impl<'a> Mul<Wrapping<isize>> for &'a Wrapping<isize>

1.14.0 · source§

impl<'a> Mul<Wrapping<u8>> for &'a Wrapping<u8>

§

type Output = <Wrapping<u8> as Mul>::Output

1.14.0 · source§

impl<'a> Mul<Wrapping<u16>> for &'a Wrapping<u16>

1.14.0 · source§

impl<'a> Mul<Wrapping<u32>> for &'a Wrapping<u32>

1.14.0 · source§

impl<'a> Mul<Wrapping<u64>> for &'a Wrapping<u64>

1.14.0 · source§

impl<'a> Mul<Wrapping<u128>> for &'a Wrapping<u128>

1.14.0 · source§

impl<'a> Mul<Wrapping<usize>> for &'a Wrapping<usize>

source§

impl<'lhs, 'rhs, T, const N: usize> Mul<&'rhs Simd<T, N>> for &'lhs Simd<T, N>
where T: SimdElement, Simd<T, N>: Mul<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<T, const N: usize> Mul<&Simd<T, N>> for Simd<T, N>
where T: SimdElement, Simd<T, N>: Mul<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<T, const N: usize> Mul<Simd<T, N>> for &Simd<T, N>
where T: SimdElement, Simd<T, N>: Mul<Output = Simd<T, N>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

impl<const N: usize> Mul for Simd<f32, N>

§

type Output = Simd<f32, N>

source§

impl<const N: usize> Mul for Simd<f64, N>

§

type Output = Simd<f64, N>

source§

impl<const N: usize> Mul for Simd<i8, N>

§

type Output = Simd<i8, N>

source§

impl<const N: usize> Mul for Simd<i16, N>

§

type Output = Simd<i16, N>

source§

impl<const N: usize> Mul for Simd<i32, N>

§

type Output = Simd<i32, N>

source§

impl<const N: usize> Mul for Simd<i64, N>

§

type Output = Simd<i64, N>

source§

impl<const N: usize> Mul for Simd<isize, N>

§

type Output = Simd<isize, N>

source§

impl<const N: usize> Mul for Simd<u8, N>

§

type Output = Simd<u8, N>

source§

impl<const N: usize> Mul for Simd<u16, N>

§

type Output = Simd<u16, N>

source§

impl<const N: usize> Mul for Simd<u32, N>

§

type Output = Simd<u32, N>

source§

impl<const N: usize> Mul for Simd<u64, N>

§

type Output = Simd<u64, N>

source§

impl<const N: usize> Mul for Simd<usize, N>

§

type Output = Simd<usize, N>

impl Mul<ByteSize> for u16

impl Mul<ByteSize> for u32

impl Mul<ByteSize> for u64

impl Mul<ByteSize> for u8

impl<T> Mul<T> for ByteSize
where T: Into<u64>,

impl Mul<i32> for TimeDelta

impl Mul<u32> for Duration

impl Mul for Ieee32

impl Mul for Ieee64

impl Mul for Checked<Limb>

impl Mul for Wrapping<Limb>

impl Mul<&Checked<Limb>> for &Checked<Limb>

impl Mul<&Checked<Limb>> for Checked<Limb>

impl Mul<&Wrapping<Limb>> for &Wrapping<Limb>

impl Mul<Checked<Limb>> for &Checked<Limb>

impl<MOD: ResidueParams<LIMBS>, const LIMBS: usize> Mul for Residue<MOD, LIMBS>

impl<MOD: ResidueParams<LIMBS>, const LIMBS: usize> Mul<&Residue<MOD, LIMBS>> for &Residue<MOD, LIMBS>

impl<MOD: ResidueParams<LIMBS>, const LIMBS: usize> Mul<&Residue<MOD, LIMBS>> for Residue<MOD, LIMBS>

impl<MOD: ResidueParams<LIMBS>, const LIMBS: usize> Mul<Residue<MOD, LIMBS>> for &Residue<MOD, LIMBS>

impl<const LIMBS: usize> Mul for DynResidue<LIMBS>

impl<const LIMBS: usize> Mul<&DynResidue<LIMBS>> for &DynResidue<LIMBS>

impl<const LIMBS: usize> Mul<&DynResidue<LIMBS>> for DynResidue<LIMBS>

impl<const LIMBS: usize> Mul<DynResidue<LIMBS>> for &DynResidue<LIMBS>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<&Checked<Uint<HLIMBS>>> for &Checked<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<&Checked<Uint<HLIMBS>>> for Checked<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<&Uint<HLIMBS>> for &Uint<LIMBS>
where Uint<HLIMBS>: ConcatMixed<Uint<LIMBS>>,

impl<const LIMBS: usize, const HLIMBS: usize> Mul<&Uint<HLIMBS>> for Uint<LIMBS>
where Uint<HLIMBS>: ConcatMixed<Uint<LIMBS>>,

impl<const LIMBS: usize, const HLIMBS: usize> Mul<&Wrapping<Uint<HLIMBS>>> for &Wrapping<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<&Wrapping<Uint<HLIMBS>>> for Wrapping<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<Checked<Uint<HLIMBS>>> for &Checked<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<Checked<Uint<HLIMBS>>> for Checked<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<Uint<HLIMBS>> for &Uint<LIMBS>
where Uint<HLIMBS>: ConcatMixed<Uint<LIMBS>>,

impl<const LIMBS: usize, const HLIMBS: usize> Mul<Uint<HLIMBS>> for Uint<LIMBS>
where Uint<HLIMBS>: ConcatMixed<Uint<LIMBS>>,

impl<const LIMBS: usize, const HLIMBS: usize> Mul<Wrapping<Uint<HLIMBS>>> for &Wrapping<Uint<LIMBS>>

impl<const LIMBS: usize, const HLIMBS: usize> Mul<Wrapping<Uint<HLIMBS>>> for Wrapping<Uint<LIMBS>>

impl Mul for Scalar

impl<'a> Mul<EdwardsPoint> for &'a Scalar

impl<'a> Mul<MontgomeryPoint> for &'a Scalar

impl<'a> Mul<RistrettoPoint> for &'a Scalar

impl<'a> Mul<Scalar> for &'a EdwardsPoint

impl<'a> Mul<Scalar> for &'a MontgomeryPoint

impl<'a> Mul<Scalar> for &'a RistrettoPoint

impl<'a> Mul<Scalar> for &'a Scalar

impl<'a, 'b> Mul<&'a EdwardsBasepointTable> for &'b Scalar

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix128> for &'b Scalar

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix256> for &'b Scalar

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix32> for &'b Scalar

impl<'a, 'b> Mul<&'a EdwardsBasepointTableRadix64> for &'b Scalar

impl<'a, 'b> Mul<&'a RistrettoBasepointTable> for &'b Scalar

impl<'a, 'b> Mul<&'b EdwardsPoint> for &'a Scalar

impl<'a, 'b> Mul<&'b RistrettoPoint> for &'a Scalar

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTable

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix128

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix256

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix32

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsBasepointTableRadix64

impl<'a, 'b> Mul<&'b Scalar> for &'a EdwardsPoint

impl<'a, 'b> Mul<&'b Scalar> for &'a RistrettoBasepointTable

impl<'a, 'b> Mul<&'b Scalar> for &'a RistrettoPoint

impl<'a, 'b> Mul<&'b Scalar> for &'a Scalar

impl<'b> Mul<&'b EdwardsPoint> for Scalar

impl<'b> Mul<&'b MontgomeryPoint> for Scalar

impl<'b> Mul<&'b RistrettoPoint> for Scalar

impl<'b> Mul<&'b Scalar> for EdwardsPoint

impl<'b> Mul<&'b Scalar> for MontgomeryPoint

impl<'b> Mul<&'b Scalar> for RistrettoPoint

impl<'b> Mul<&'b Scalar> for Scalar

impl<C> Mul for NonZeroScalar<C>

impl<C, P> Mul<&NonZeroScalar<C>> for &NonIdentity<P>
where C: CurveArithmetic, P: Copy + Mul<Scalar<C>, Output = P>,

impl<C, P> Mul<NonZeroScalar<C>> for NonIdentity<P>
where C: CurveArithmetic, P: Copy + Mul<Scalar<C>, Output = P>,

impl Mul<u64> for Nanos

impl<G: Group, const WINDOW_SIZE: usize> Mul<&WnafScalar<<G as Group>::Scalar, WINDOW_SIZE>> for &WnafBase<G, WINDOW_SIZE>

impl Mul for BigInt

impl Mul for Number

impl Mul<&BigInt> for &BigInt

impl Mul<&BigInt> for BigInt

impl Mul<&Number> for &Number

impl Mul<&Number> for Number

impl<'a> Mul<BigInt> for &'a BigInt

impl<'a> Mul<Number> for &'a Number

impl Mul for Scalar

impl Mul<&Scalar> for &Scalar

impl Mul<&Scalar> for Scalar

impl Mul for Field

impl Mul for Scalar

impl<'a, 'b> Mul<&'a Field> for &'b Field

impl<'a, 'b> Mul<&'a Scalar> for &'b Scalar

impl Mul<i32> for TimeSpec

impl Mul<i32> for TimeVal

impl Mul<&f32> for &Rgb

impl Mul<&f32> for Rgb

impl Mul<&Rgb> for &f32

impl Mul<&Rgb> for f32

impl Mul<f32> for &Rgb

impl Mul<f32> for Rgb

impl Mul<Rgb> for &f32

impl Mul<Rgb> for f32

impl Mul for Sign

impl Mul for BigInt

impl Mul for BigUint

impl Mul<&i128> for &BigInt

impl Mul<&i128> for BigInt

impl Mul<&i16> for &BigInt

impl Mul<&i16> for BigInt

impl Mul<&i32> for &BigInt

impl Mul<&i32> for BigInt

impl Mul<&i64> for &BigInt

impl Mul<&i64> for BigInt

impl Mul<&i8> for &BigInt

impl Mul<&i8> for BigInt

impl Mul<&isize> for &BigInt

impl Mul<&isize> for BigInt

impl Mul<&u128> for &BigInt

impl Mul<&u128> for &BigUint

impl Mul<&u128> for BigInt

impl Mul<&u128> for BigUint

impl Mul<&u16> for &BigInt

impl Mul<&u16> for &BigUint

impl Mul<&u16> for BigInt

impl Mul<&u16> for BigUint

impl Mul<&u32> for &BigInt

impl Mul<&u32> for &BigUint

impl Mul<&u32> for BigInt

impl Mul<&u32> for BigUint

impl Mul<&u64> for &BigInt

impl Mul<&u64> for &BigUint

impl Mul<&u64> for BigInt

impl Mul<&u64> for BigUint

impl Mul<&u8> for &BigInt

impl Mul<&u8> for &BigUint

impl Mul<&u8> for BigInt

impl Mul<&u8> for BigUint

impl Mul<&usize> for &BigInt

impl Mul<&usize> for &BigUint

impl Mul<&usize> for BigInt

impl Mul<&usize> for BigUint

impl Mul<&BigInt> for &i128

impl Mul<&BigInt> for &i16

impl Mul<&BigInt> for &i32

impl Mul<&BigInt> for &i64

impl Mul<&BigInt> for &i8

impl Mul<&BigInt> for &isize

impl Mul<&BigInt> for &u128

impl Mul<&BigInt> for &u16

impl Mul<&BigInt> for &u32

impl Mul<&BigInt> for &u64

impl Mul<&BigInt> for &u8

impl Mul<&BigInt> for &usize

impl Mul<&BigInt> for &BigInt

impl Mul<&BigInt> for i128

impl Mul<&BigInt> for i16

impl Mul<&BigInt> for i32

impl Mul<&BigInt> for i64

impl Mul<&BigInt> for i8

impl Mul<&BigInt> for isize

impl Mul<&BigInt> for u128

impl Mul<&BigInt> for u16

impl Mul<&BigInt> for u32

impl Mul<&BigInt> for u64

impl Mul<&BigInt> for u8

impl Mul<&BigInt> for usize

impl Mul<&BigInt> for BigInt

impl Mul<&BigUint> for &u128

impl Mul<&BigUint> for &u16

impl Mul<&BigUint> for &u32

impl Mul<&BigUint> for &u64

impl Mul<&BigUint> for &u8

impl Mul<&BigUint> for &usize

impl Mul<&BigUint> for &BigUint

impl Mul<&BigUint> for u128

impl Mul<&BigUint> for u16

impl Mul<&BigUint> for u32

impl Mul<&BigUint> for u64

impl Mul<&BigUint> for u8

impl Mul<&BigUint> for usize

impl Mul<&BigUint> for BigUint

impl Mul<i128> for &BigInt

impl Mul<i128> for BigInt

impl Mul<i16> for &BigInt

impl Mul<i16> for BigInt

impl Mul<i32> for &BigInt

impl Mul<i32> for BigInt

impl Mul<i64> for &BigInt

impl Mul<i64> for BigInt

impl Mul<i8> for &BigInt

impl Mul<i8> for BigInt

impl Mul<isize> for &BigInt

impl Mul<isize> for BigInt

impl Mul<u128> for &BigInt

impl Mul<u128> for &BigUint

impl Mul<u128> for BigInt

impl Mul<u128> for BigUint

impl Mul<u16> for &BigInt

impl Mul<u16> for &BigUint

impl Mul<u16> for BigInt

impl Mul<u16> for BigUint

impl Mul<u32> for &BigInt

impl Mul<u32> for &BigUint

impl Mul<u32> for BigInt

impl Mul<u32> for BigUint

impl Mul<u64> for &BigInt

impl Mul<u64> for &BigUint

impl Mul<u64> for BigInt

impl Mul<u64> for BigUint

impl Mul<u8> for &BigInt

impl Mul<u8> for &BigUint

impl Mul<u8> for BigInt

impl Mul<u8> for BigUint

impl Mul<usize> for &BigInt

impl Mul<usize> for &BigUint

impl Mul<usize> for BigInt

impl Mul<usize> for BigUint

impl Mul<BigInt> for &i128

impl Mul<BigInt> for &i16

impl Mul<BigInt> for &i32

impl Mul<BigInt> for &i64

impl Mul<BigInt> for &i8

impl Mul<BigInt> for &isize

impl Mul<BigInt> for &u128

impl Mul<BigInt> for &u16

impl Mul<BigInt> for &u32

impl Mul<BigInt> for &u64

impl Mul<BigInt> for &u8

impl Mul<BigInt> for &usize

impl Mul<BigInt> for &BigInt

impl Mul<BigInt> for i128

impl Mul<BigInt> for i16

impl Mul<BigInt> for i32

impl Mul<BigInt> for i64

impl Mul<BigInt> for i8

impl Mul<BigInt> for isize

impl Mul<BigInt> for u128

impl Mul<BigInt> for u16

impl Mul<BigInt> for u32

impl Mul<BigInt> for u64

impl Mul<BigInt> for u8

impl Mul<BigInt> for usize

impl Mul<BigUint> for &u128

impl Mul<BigUint> for &u16

impl Mul<BigUint> for &u32

impl Mul<BigUint> for &u64

impl Mul<BigUint> for &u8

impl Mul<BigUint> for &usize

impl Mul<BigUint> for &BigUint

impl Mul<BigUint> for u128

impl Mul<BigUint> for u16

impl Mul<BigUint> for u32

impl Mul<BigUint> for u64

impl Mul<BigUint> for u8

impl Mul<BigUint> for usize

impl<T: Float> Mul for NotNan<T>

impl<T: Float> Mul for OrderedFloat<T>

impl<T: Float> Mul<T> for NotNan<T>

impl Mul for U128

impl Mul for U256

impl Mul for U512

impl Mul<i16> for U128

impl Mul<i16> for U256

impl Mul<i16> for U512

impl Mul<i32> for U128

impl Mul<i32> for U256

impl Mul<i32> for U512

impl Mul<i64> for U128

impl Mul<i64> for U256

impl Mul<i64> for U512

impl Mul<i8> for U128

impl Mul<i8> for U256

impl Mul<i8> for U512

impl Mul<isize> for U128

impl Mul<isize> for U256

impl Mul<isize> for U512

impl Mul<u16> for U128

impl Mul<u16> for U256

impl Mul<u16> for U512

impl Mul<u32> for U128

impl Mul<u32> for U256

impl Mul<u32> for U512

impl Mul<u64> for U128

impl Mul<u64> for U256

impl Mul<u64> for U512

impl Mul<u8> for U128

impl Mul<u8> for U256

impl Mul<u8> for U512

impl Mul<usize> for U128

impl Mul<usize> for U256

impl Mul<usize> for U512

impl<'a> Mul for &'a U128

impl<'a> Mul for &'a U256

impl<'a> Mul for &'a U512

impl<'a> Mul<&'a i16> for &'a U128

impl<'a> Mul<&'a i16> for &'a U256

impl<'a> Mul<&'a i16> for &'a U512

impl<'a> Mul<&'a i16> for U128

impl<'a> Mul<&'a i16> for U256

impl<'a> Mul<&'a i16> for U512

impl<'a> Mul<&'a i32> for &'a U128

impl<'a> Mul<&'a i32> for &'a U256

impl<'a> Mul<&'a i32> for &'a U512

impl<'a> Mul<&'a i32> for U128

impl<'a> Mul<&'a i32> for U256

impl<'a> Mul<&'a i32> for U512

impl<'a> Mul<&'a i64> for &'a U128

impl<'a> Mul<&'a i64> for &'a U256

impl<'a> Mul<&'a i64> for &'a U512

impl<'a> Mul<&'a i64> for U128

impl<'a> Mul<&'a i64> for U256

impl<'a> Mul<&'a i64> for U512

impl<'a> Mul<&'a i8> for &'a U128

impl<'a> Mul<&'a i8> for &'a U256

impl<'a> Mul<&'a i8> for &'a U512

impl<'a> Mul<&'a i8> for U128

impl<'a> Mul<&'a i8> for U256

impl<'a> Mul<&'a i8> for U512

impl<'a> Mul<&'a isize> for &'a U128

impl<'a> Mul<&'a isize> for &'a U256

impl<'a> Mul<&'a isize> for &'a U512

impl<'a> Mul<&'a isize> for U128

impl<'a> Mul<&'a isize> for U256

impl<'a> Mul<&'a isize> for U512

impl<'a> Mul<&'a u16> for &'a U128

impl<'a> Mul<&'a u16> for &'a U256

impl<'a> Mul<&'a u16> for &'a U512

impl<'a> Mul<&'a u16> for U128

impl<'a> Mul<&'a u16> for U256

impl<'a> Mul<&'a u16> for U512

impl<'a> Mul<&'a u32> for &'a U128

impl<'a> Mul<&'a u32> for &'a U256

impl<'a> Mul<&'a u32> for &'a U512

impl<'a> Mul<&'a u32> for U128

impl<'a> Mul<&'a u32> for U256

impl<'a> Mul<&'a u32> for U512

impl<'a> Mul<&'a u64> for &'a U128

impl<'a> Mul<&'a u64> for &'a U256

impl<'a> Mul<&'a u64> for &'a U512

impl<'a> Mul<&'a u64> for U128

impl<'a> Mul<&'a u64> for U256

impl<'a> Mul<&'a u64> for U512

impl<'a> Mul<&'a u8> for &'a U128

impl<'a> Mul<&'a u8> for &'a U256

impl<'a> Mul<&'a u8> for &'a U512

impl<'a> Mul<&'a u8> for U128

impl<'a> Mul<&'a u8> for U256

impl<'a> Mul<&'a u8> for U512

impl<'a> Mul<&'a usize> for &'a U128

impl<'a> Mul<&'a usize> for &'a U256

impl<'a> Mul<&'a usize> for &'a U512

impl<'a> Mul<&'a usize> for U128

impl<'a> Mul<&'a usize> for U256

impl<'a> Mul<&'a usize> for U512

impl<'a> Mul<&'a U128> for U128

impl<'a> Mul<&'a U256> for U256

impl<'a> Mul<&'a U512> for U512

impl<'a> Mul<i16> for &'a U128

impl<'a> Mul<i16> for &'a U256

impl<'a> Mul<i16> for &'a U512

impl<'a> Mul<i32> for &'a U128

impl<'a> Mul<i32> for &'a U256

impl<'a> Mul<i32> for &'a U512

impl<'a> Mul<i64> for &'a U128

impl<'a> Mul<i64> for &'a U256

impl<'a> Mul<i64> for &'a U512

impl<'a> Mul<i8> for &'a U128

impl<'a> Mul<i8> for &'a U256

impl<'a> Mul<i8> for &'a U512

impl<'a> Mul<isize> for &'a U128

impl<'a> Mul<isize> for &'a U256

impl<'a> Mul<isize> for &'a U512

impl<'a> Mul<u16> for &'a U128

impl<'a> Mul<u16> for &'a U256

impl<'a> Mul<u16> for &'a U512

impl<'a> Mul<u32> for &'a U128

impl<'a> Mul<u32> for &'a U256

impl<'a> Mul<u32> for &'a U512

impl<'a> Mul<u64> for &'a U128

impl<'a> Mul<u64> for &'a U256

impl<'a> Mul<u64> for &'a U512

impl<'a> Mul<u8> for &'a U128

impl<'a> Mul<u8> for &'a U256

impl<'a> Mul<u8> for &'a U512

impl<'a> Mul<usize> for &'a U128

impl<'a> Mul<usize> for &'a U256

impl<'a> Mul<usize> for &'a U512

impl<'a> Mul<U128> for &'a U128

impl<'a> Mul<U256> for &'a U256

impl<'a> Mul<U512> for &'a U512

impl Mul for BigUint

impl Mul for FixedI128

impl Mul for FixedI64

impl Mul for FixedU128

impl Mul for FixedU64

impl Mul for PerU16

impl Mul for Perbill

impl Mul for Percent

impl Mul for Permill

impl Mul for Perquintill

impl<N> Mul<N> for PerU16
where N: Clone + UniqueSaturatedInto<u16> + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N> + Unsigned, u16: Into<N>,

impl<N> Mul<N> for Perbill
where N: Clone + UniqueSaturatedInto<u32> + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N> + Unsigned, u32: Into<N>,

impl<N> Mul<N> for Percent
where N: Clone + UniqueSaturatedInto<u8> + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N> + Unsigned, u8: Into<N>,

impl<N> Mul<N> for Permill
where N: Clone + UniqueSaturatedInto<u32> + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N> + Unsigned, u32: Into<N>,

impl<N> Mul<N> for Perquintill
where N: Clone + UniqueSaturatedInto<u64> + Rem<N, Output = N> + Div<N, Output = N> + Mul<N, Output = N> + Add<N, Output = N> + Unsigned, u64: Into<N>,

impl<T: Mul<Output = T>, D: Get<T>> Mul for TypeWithDefault<T, D>

impl Mul<Weight> for u16

impl Mul<Weight> for u32

impl Mul<Weight> for u64

impl Mul<Weight> for u8

impl Mul<Weight> for PerU16

impl Mul<Weight> for Perbill

impl Mul<Weight> for Percent

impl Mul<Weight> for Permill

impl<T> Mul<T> for Weight
where T: Mul<u64, Output = u64> + Copy,

impl Mul<f32> for Duration

impl Mul<f64> for Duration

impl Mul<i16> for Duration

impl Mul<i32> for Duration

impl Mul<i8> for Duration

impl Mul<u16> for Duration

impl Mul<u32> for Duration

impl Mul<u8> for Duration

impl Mul<Duration> for f32

impl Mul<Duration> for f64

impl Mul<Duration> for i16

impl Mul<Duration> for i32

impl Mul<Duration> for i8

impl Mul<Duration> for u16

impl Mul<Duration> for u32

impl Mul<Duration> for u8

impl Mul<ATerm> for Z0

impl Mul<B0> for UTerm

impl Mul<B1> for UTerm

impl<I: Integer> Mul<I> for Z0

impl<Rhs> Mul<Rhs> for ATerm

impl<U> Mul<ATerm> for NInt<U>
where U: Unsigned + NonZero,

impl<U> Mul<ATerm> for PInt<U>
where U: Unsigned + NonZero,

impl<U: Unsigned + NonZero> Mul<Z0> for NInt<U>

impl<U: Unsigned + NonZero> Mul<Z0> for PInt<U>

impl<U: Unsigned> Mul<U> for UTerm

impl<U: Unsigned, B: Bit> Mul<B0> for UInt<U, B>

impl<U: Unsigned, B: Bit> Mul<B1> for UInt<U, B>

impl<U: Unsigned, B: Bit> Mul<UTerm> for UInt<U, B>

impl<Ul, B: Bit, Ur: Unsigned> Mul<UInt<Ur, B>> for UInt<Ul, B0>
where Ul: Mul<UInt<Ur, B>> + Unsigned,

impl<Ul, B: Bit, Ur: Unsigned> Mul<UInt<Ur, B>> for UInt<Ul, B1>
where Ul: Mul<UInt<Ur, B>> + Unsigned, UInt<Prod<Ul, UInt<Ur, B>>, B0>: Add<UInt<Ur, B>>,

impl<Ul, Ur: Unsigned + NonZero> Mul<NInt<Ur>> for NInt<Ul>
where Ul: Mul<Ur> + Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

impl<Ul, Ur: Unsigned + NonZero> Mul<NInt<Ur>> for PInt<Ul>
where Ul: Mul<Ur> + Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

impl<Ul, Ur: Unsigned + NonZero> Mul<PInt<Ur>> for NInt<Ul>
where Ul: Mul<Ur> + Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

impl<Ul, Ur: Unsigned + NonZero> Mul<PInt<Ur>> for PInt<Ul>
where Ul: Mul<Ur> + Unsigned + NonZero, <Ul as Mul<Ur>>::Output: Unsigned + NonZero,

impl<V, A> Mul<TArr<V, A>> for Z0
where Z0: Mul<A>,

impl<V, A, Rhs> Mul<Rhs> for TArr<V, A>
where V: Mul<Rhs>, A: Mul<Rhs>, Rhs: Copy,

impl<V, A, U> Mul<TArr<V, A>> for NInt<U>
where U: Unsigned + NonZero, NInt<U>: Mul<A> + Mul<V>,

impl<V, A, U> Mul<TArr<V, A>> for PInt<U>
where U: Unsigned + NonZero, PInt<U>: Mul<A> + Mul<V>,

impl Mul for &JsValue

impl Mul for JsValue

impl Mul<&JsValue> for JsValue

impl<'a> Mul<JsValue> for &'a JsValue

impl<O: ByteOrder> Mul for F32<O>

impl<O: ByteOrder> Mul for F64<O>

impl<O: ByteOrder> Mul for I128<O>

impl<O: ByteOrder> Mul for I16<O>

impl<O: ByteOrder> Mul for I32<O>

impl<O: ByteOrder> Mul for I64<O>

impl<O: ByteOrder> Mul for U128<O>

impl<O: ByteOrder> Mul for U16<O>

impl<O: ByteOrder> Mul for U32<O>

impl<O: ByteOrder> Mul for U64<O>