Skip to main content

Add

Trait Add 

1.0.0 (const: unstable) · Source
pub trait Add<Rhs = Self> {
    type Output;

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

The addition operator +.

Note that Rhs is Self by default, but this is not mandatory. For example, std::time::SystemTime implements Add<Duration>, which permits operations of the form SystemTime = SystemTime + Duration.

§Examples

§Addable points

use std::ops::Add;

#[derive(Debug, Copy, Clone, PartialEq)]
struct Point {
    x: i32,
    y: i32,
}

impl Add for Point {
    type Output = Self;

    fn add(self, other: Self) -> Self {
        Self {
            x: self.x + other.x,
            y: self.y + other.y,
        }
    }
}

assert_eq!(Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
           Point { x: 3, y: 3 });

§Implementing Add with generics

Here is an example of the same Point struct implementing the Add trait using generics.

use std::ops::Add;

#[derive(Debug, Copy, Clone, PartialEq)]
struct Point<T> {
    x: T,
    y: T,
}

// Notice that the implementation uses the associated type `Output`.
impl<T: Add<Output = T>> Add for Point<T> {
    type Output = Self;

    fn add(self, other: Self) -> Self::Output {
        Self {
            x: self.x + other.x,
            y: self.y + other.y,
        }
    }
}

assert_eq!(Point { x: 1, y: 0 } + Point { x: 2, y: 3 },
           Point { x: 3, y: 3 });

Required Associated Types§

1.0.0 · Source

type Output

The resulting type after applying the + operator.

Required Methods§

1.0.0 · Source

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

Performs the + operation.

§Example
assert_eq!(12 + 1, 13);

Implementors§

1.0.0 (const: unstable) · Source§

impl Add for f16

1.0.0 (const: unstable) · Source§

impl Add for f32

1.0.0 (const: unstable) · Source§

impl Add for f64

1.0.0 (const: unstable) · Source§

impl Add for f128

1.0.0 (const: unstable) · Source§

impl Add for i8

1.0.0 (const: unstable) · Source§

impl Add for i16

1.0.0 (const: unstable) · Source§

impl Add for i32

1.0.0 (const: unstable) · Source§

impl Add for i64

1.0.0 (const: unstable) · Source§

impl Add for i128

1.0.0 (const: unstable) · Source§

impl Add for isize

1.0.0 (const: unstable) · Source§

impl Add for u8

1.0.0 (const: unstable) · Source§

impl Add for u16

1.0.0 (const: unstable) · Source§

impl Add for u32

1.0.0 (const: unstable) · Source§

impl Add for u64

1.0.0 (const: unstable) · Source§

impl Add for u128

1.0.0 (const: unstable) · Source§

impl Add for usize

Source§

impl Add for Assume

1.74.0 (const: unstable) · Source§

impl Add for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Add for Saturating<usize>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<i8>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<i16>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<i32>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<i64>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<i128>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<isize>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<u8>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<u16>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<u32>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<u64>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<u128>

1.0.0 (const: unstable) · Source§

impl Add for core::num::wrapping::Wrapping<usize>

1.3.0 (const: unstable) · Source§

impl Add for Duration

Source§

impl Add for Length

Source§

impl Add for ATerm

Source§

impl Add for BoxedMontyForm

Available on crate feature alloc only.
Source§

impl Add for Limb

1.0.0 (const: unstable) · Source§

impl Add<&f16> for &f16

1.0.0 (const: unstable) · Source§

impl Add<&f16> for f16

1.0.0 (const: unstable) · Source§

impl Add<&f32> for &f32

1.0.0 (const: unstable) · Source§

impl Add<&f32> for f32

1.0.0 (const: unstable) · Source§

impl Add<&f64> for &f64

1.0.0 (const: unstable) · Source§

impl Add<&f64> for f64

1.0.0 (const: unstable) · Source§

impl Add<&f128> for &f128

1.0.0 (const: unstable) · Source§

impl Add<&f128> for f128

1.0.0 (const: unstable) · Source§

impl Add<&i8> for &i8

1.0.0 (const: unstable) · Source§

impl Add<&i8> for i8

1.0.0 (const: unstable) · Source§

impl Add<&i16> for &i16

1.0.0 (const: unstable) · Source§

impl Add<&i16> for i16

1.0.0 (const: unstable) · Source§

impl Add<&i32> for &i32

1.0.0 (const: unstable) · Source§

impl Add<&i32> for i32

1.0.0 (const: unstable) · Source§

impl Add<&i64> for &i64

1.0.0 (const: unstable) · Source§

impl Add<&i64> for i64

1.0.0 (const: unstable) · Source§

impl Add<&i128> for &i128

1.0.0 (const: unstable) · Source§

impl Add<&i128> for i128

1.0.0 (const: unstable) · Source§

impl Add<&isize> for &isize

1.0.0 (const: unstable) · Source§

impl Add<&isize> for isize

1.0.0 · Source§

impl Add<&str> for String

Available on non-no_global_oom_handling only.

Implements the + operator for concatenating two strings.

This consumes the String on the left-hand side and re-uses its buffer (growing it if necessary). This is done to avoid allocating a new String and copying the entire contents on every operation, which would lead to O(n^2) running time when building an n-byte string by repeated concatenation.

The string on the right-hand side is only borrowed; its contents are copied into the returned String.

§Examples

Concatenating two Strings takes the first by value and borrows the second:

let a = String::from("hello");
let b = String::from(" world");
let c = a + &b;
// `a` is moved and can no longer be used here.

If you want to keep using the first String, you can clone it and append to the clone instead:

let a = String::from("hello");
let b = String::from(" world");
let c = a.clone() + &b;
// `a` is still valid here.

Concatenating &str slices can be done by converting the first to a String:

let a = "hello";
let b = " world";
let c = a.to_string() + b;
1.0.0 (const: unstable) · Source§

impl Add<&u8> for &u8

1.0.0 (const: unstable) · Source§

impl Add<&u8> for u8

1.0.0 (const: unstable) · Source§

impl Add<&u16> for &u16

1.0.0 (const: unstable) · Source§

impl Add<&u16> for u16

1.0.0 (const: unstable) · Source§

impl Add<&u32> for &u32

1.0.0 (const: unstable) · Source§

impl Add<&u32> for u32

1.0.0 (const: unstable) · Source§

impl Add<&u64> for &u64

1.0.0 (const: unstable) · Source§

impl Add<&u64> for u64

1.0.0 (const: unstable) · Source§

impl Add<&u128> for &u128

1.0.0 (const: unstable) · Source§

impl Add<&u128> for u128

1.0.0 (const: unstable) · Source§

impl Add<&usize> for &usize

1.0.0 (const: unstable) · Source§

impl Add<&usize> for usize

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i8>> for &Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i8>> for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i16>> for &Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i16>> for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i32>> for &Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i32>> for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i64>> for &Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i64>> for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i128>> for &Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<i128>> for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<isize>> for &Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<isize>> for Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u8>> for &Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u8>> for Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u16>> for &Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u16>> for Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u32>> for &Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u32>> for Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u64>> for &Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u64>> for Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u128>> for &Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<u128>> for Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<usize>> for &Saturating<usize>

1.74.0 (const: unstable) · Source§

impl Add<&Saturating<usize>> for Saturating<usize>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i8>> for &core::num::wrapping::Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i8>> for core::num::wrapping::Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i16>> for &core::num::wrapping::Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i16>> for core::num::wrapping::Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i32>> for &core::num::wrapping::Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i32>> for core::num::wrapping::Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i64>> for &core::num::wrapping::Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i64>> for core::num::wrapping::Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i128>> for &core::num::wrapping::Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<i128>> for core::num::wrapping::Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<isize>> for &core::num::wrapping::Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<isize>> for core::num::wrapping::Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u8>> for &core::num::wrapping::Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u8>> for core::num::wrapping::Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u16>> for &core::num::wrapping::Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u16>> for core::num::wrapping::Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u32>> for &core::num::wrapping::Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u32>> for core::num::wrapping::Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u64>> for &core::num::wrapping::Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u64>> for core::num::wrapping::Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u128>> for &core::num::wrapping::Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<u128>> for core::num::wrapping::Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<usize>> for &core::num::wrapping::Wrapping<usize>

1.14.0 (const: unstable) · Source§

impl Add<&Wrapping<usize>> for core::num::wrapping::Wrapping<usize>

Source§

impl Add<&BoxedMontyForm> for &BoxedMontyForm

Available on crate feature alloc only.
Source§

impl Add<&BoxedMontyForm> for BoxedMontyForm

Available on crate feature alloc only.
Source§

impl Add<&Limb> for Limb

1.0.0 (const: unstable) · Source§

impl Add<f16> for &f16

1.0.0 (const: unstable) · Source§

impl Add<f32> for &f32

1.0.0 (const: unstable) · Source§

impl Add<f64> for &f64

1.0.0 (const: unstable) · Source§

impl Add<f128> for &f128

1.0.0 (const: unstable) · Source§

impl Add<i8> for &i8

1.0.0 (const: unstable) · Source§

impl Add<i16> for &i16

1.0.0 (const: unstable) · Source§

impl Add<i32> for &i32

1.0.0 (const: unstable) · Source§

impl Add<i64> for &i64

1.0.0 (const: unstable) · Source§

impl Add<i128> for &i128

1.0.0 (const: unstable) · Source§

impl Add<isize> for &isize

1.0.0 (const: unstable) · Source§

impl Add<u8> for &u8

Source§

impl Add<u8> for &BoxedUint

Available on crate feature alloc only.
Source§

type Output = <&BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

Source§

impl Add<u8> for Length

Source§

impl Add<u8> for BoxedUint

Available on crate feature alloc only.
Source§

type Output = <BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

1.0.0 (const: unstable) · Source§

impl Add<u16> for &u16

Source§

impl Add<u16> for &BoxedUint

Available on crate feature alloc only.
Source§

type Output = <&BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

Source§

impl Add<u16> for Length

Source§

impl Add<u16> for BoxedUint

Available on crate feature alloc only.
Source§

type Output = <BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

1.0.0 (const: unstable) · Source§

impl Add<u32> for &u32

Source§

impl Add<u32> for &BoxedUint

Available on crate feature alloc only.
Source§

type Output = <&BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

Source§

impl Add<u32> for Length

Source§

impl Add<u32> for BoxedUint

Available on crate feature alloc only.
Source§

type Output = <BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

1.0.0 (const: unstable) · Source§

impl Add<u64> for &u64

Source§

impl Add<u64> for &BoxedUint

Available on crate feature alloc only.
Source§

type Output = <&BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

Source§

impl Add<u64> for BoxedUint

Available on crate feature alloc only.
Source§

type Output = <BoxedUint as Add<Uint<{ nlimbs($bits) }>>>::Output

1.0.0 (const: unstable) · Source§

impl Add<u128> for &u128

Source§

impl Add<u128> for &BoxedUint

Available on crate feature alloc only.
Source§

impl Add<u128> for BoxedUint

Available on crate feature alloc only.
1.0.0 (const: unstable) · Source§

impl Add<usize> for &usize

Source§

impl Add<usize> for Length

Source§

impl Add<B0> for UTerm

UTerm + B0 = UTerm

Source§

impl Add<B1> for UTerm

UTerm + B1 = UInt<UTerm, B1>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<i8>> for &Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<i16>> for &Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<i32>> for &Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<i64>> for &Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<i128>> for &Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<isize>> for &Saturating<isize>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<u8>> for &Saturating<u8>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<u16>> for &Saturating<u16>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<u32>> for &Saturating<u32>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<u64>> for &Saturating<u64>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<u128>> for &Saturating<u128>

1.74.0 (const: unstable) · Source§

impl Add<Saturating<usize>> for &Saturating<usize>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<i8>> for &core::num::wrapping::Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<i16>> for &core::num::wrapping::Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<i32>> for &core::num::wrapping::Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<i64>> for &core::num::wrapping::Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<i128>> for &core::num::wrapping::Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<isize>> for &core::num::wrapping::Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<u8>> for &core::num::wrapping::Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<u16>> for &core::num::wrapping::Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<u32>> for &core::num::wrapping::Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<u64>> for &core::num::wrapping::Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<u128>> for &core::num::wrapping::Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Add<Wrapping<usize>> for &core::num::wrapping::Wrapping<usize>

Source§

impl Add<Length> for Result<Length, Error>

Source§

impl Add<BoxedMontyForm> for &BoxedMontyForm

Available on crate feature alloc only.
1.14.0 · Source§

impl<'a> Add for Cow<'a, str>

Available on non-no_global_oom_handling only.
Source§

type Output = Cow<'a, str>

1.14.0 · Source§

impl<'a> Add<&'a str> for Cow<'a, str>

Available on non-no_global_oom_handling only.
Source§

type Output = Cow<'a, str>

Source§

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

Source§

type Output = Simd<T, N>

Source§

impl<Al, Vl, Ar, Vr> Add<TArr<Vr, Ar>> for TArr<Vl, Al>
where Al: Add<Ar>, Vl: Add<Vr>,

Source§

type Output = TArr<<Vl as Add<Vr>>::Output, <Al as Add<Ar>>::Output>

Source§

impl<I> Add<I> for Z0
where I: Integer,

Z0 + I = I

Source§

impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add for ConstMontyForm<MOD, LIMBS>

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<&ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<&ConstMontyForm<MOD, LIMBS>> for ConstMontyForm<MOD, LIMBS>

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<MOD: ConstMontyParams<LIMBS>, const LIMBS: usize> Add<ConstMontyForm<MOD, LIMBS>> for &ConstMontyForm<MOD, LIMBS>

Source§

type Output = ConstMontyForm<MOD, LIMBS>

Source§

impl<Rhs: AsRef<UintRef>> Add<Rhs> for &BoxedUint

Available on crate feature alloc only.
Source§

impl<Rhs: AsRef<UintRef>> Add<Rhs> for BoxedUint

Available on crate feature alloc only.
Source§

impl<T> Add for Checked<T>

Source§

impl<T> Add<&Checked<T>> for &Checked<T>

Source§

impl<T> Add<&Checked<T>> for Checked<T>

Source§

impl<T> Add<Checked<T>> for &Checked<T>

Source§

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

Source§

type Output = Simd<T, N>

Source§

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

Source§

type Output = Simd<T, N>

Source§

impl<T: WrappingAdd> Add for crypto_bigint::Wrapping<T>

Source§

impl<T: WrappingAdd> Add<&Wrapping<T>> for &crypto_bigint::Wrapping<T>

Source§

impl<T: WrappingAdd> Add<&Wrapping<T>> for crypto_bigint::Wrapping<T>

Source§

impl<T: WrappingAdd> Add<Wrapping<T>> for &crypto_bigint::Wrapping<T>

Source§

impl<U> Add<B1> for UInt<U, B0>
where U: Unsigned,

UInt<U, B0> + B1 = UInt<U + B1>

Source§

impl<U> Add<B1> for UInt<U, B1>
where U: Unsigned + Add<B1>, <U as Add<B1>>::Output: Unsigned,

UInt<U, B1> + B1 = UInt<U + B1, B0>

Source§

type Output = UInt<<U as Add<B1>>::Output, B0>

Source§

impl<U> Add<Z0> for NInt<U>
where U: Unsigned + NonZero,

NInt + Z0 = NInt

Source§

impl<U> Add<Z0> for PInt<U>
where U: Unsigned + NonZero,

PInt + Z0 = PInt

Source§

impl<U> Add<U> for UTerm
where U: Unsigned,

UTerm + U = U

Source§

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

U + B0 = U

Source§

type Output = UInt<U, B>

Source§

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

UInt<U, B> + UTerm = UInt<U, B>

Source§

type Output = UInt<U, B>

Source§

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

N(Ul) + N(Ur) = N(Ul + Ur)

Source§

type Output = NInt<<Ul as Add<Ur>>::Output>

Source§

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

P(Ul) + N(Ur): We resolve this with our PrivateAdd

Source§

type Output = <Ul as PrivateIntegerAdd<<Ul as Cmp<Ur>>::Output, Ur>>::Output

Source§

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

N(Ul) + P(Ur): We resolve this with our PrivateAdd

Source§

type Output = <Ur as PrivateIntegerAdd<<Ur as Cmp<Ul>>::Output, Ul>>::Output

Source§

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

P(Ul) + P(Ur) = P(Ul + Ur)

Source§

type Output = PInt<<Ul as Add<Ur>>::Output>

Source§

impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B0>
where Ul: Unsigned + Add<Ur>, Ur: Unsigned,

UInt<Ul, B0> + UInt<Ur, B0> = UInt<Ul + Ur, B0>

Source§

type Output = UInt<<Ul as Add<Ur>>::Output, B0>

Source§

impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B1>
where Ul: Unsigned + Add<Ur>, Ur: Unsigned,

UInt<Ul, B1> + UInt<Ur, B0> = UInt<Ul + Ur, B1>

Source§

type Output = UInt<<Ul as Add<Ur>>::Output, B1>

Source§

impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B0>
where Ul: Unsigned + Add<Ur>, Ur: Unsigned,

UInt<Ul, B0> + UInt<Ur, B1> = UInt<Ul + Ur, B1>

Source§

type Output = UInt<<Ul as Add<Ur>>::Output, B1>

Source§

impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B1>
where Ul: Unsigned + Add<Ur>, Ur: Unsigned, <Ul as Add<Ur>>::Output: Add<B1>,

UInt<Ul, B1> + UInt<Ur, B1> = UInt<(Ul + Ur) + B1, B0>

Source§

type Output = UInt<<<Ul as Add<Ur>>::Output as Add<B1>>::Output, B0>

Source§

impl<const LIMBS: usize> Add for FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> Add for Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize> Add for Uint<LIMBS>

Source§

type Output = Uint<LIMBS>

Source§

impl<const LIMBS: usize> Add<&FixedMontyForm<LIMBS>> for &FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> Add<&FixedMontyForm<LIMBS>> for FixedMontyForm<LIMBS>

Source§

impl<const LIMBS: usize> Add<&Int<LIMBS>> for Int<LIMBS>

Source§

type Output = Int<LIMBS>

Source§

impl<const LIMBS: usize> Add<&Uint<LIMBS>> for Uint<LIMBS>

Source§

type Output = Uint<LIMBS>

Source§

impl<const LIMBS: usize> Add<FixedMontyForm<LIMBS>> for &FixedMontyForm<LIMBS>

Source§

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

Source§

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

Source§

impl<const N: usize> Add for Simd<i8, N>
where i8: SimdElement,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<const N: usize> Add for Simd<u8, N>
where u8: SimdElement,

Source§

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

Source§

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

Source§

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

Source§

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