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§

source

type Output

The resulting type after applying the + operator.

Required Methods§

source

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

Performs the + operation.

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

Implementors§

source§

impl Add for f32

§

type Output = f32

source§

impl Add for f64

§

type Output = f64

source§

impl Add for i8

§

type Output = i8

source§

impl Add for i16

§

type Output = i16

source§

impl Add for i32

§

type Output = i32

source§

impl Add for i64

§

type Output = i64

source§

impl Add for i128

§

type Output = i128

source§

impl Add for isize

source§

impl Add for u8

§

type Output = u8

source§

impl Add for u16

§

type Output = u16

source§

impl Add for u32

§

type Output = u32

source§

impl Add for u64

§

type Output = u64

source§

impl Add for u128

§

type Output = u128

source§

impl Add for usize

source§

impl Add for Decimal

source§

impl Add for I192

§

type Output = I192

source§

impl Add for I256

§

type Output = I256

source§

impl Add for I320

§

type Output = I320

source§

impl Add for I384

§

type Output = I384

source§

impl Add for I448

§

type Output = I448

source§

impl Add for I512

§

type Output = I512

source§

impl Add for I768

§

type Output = I768

source§

impl Add for PreciseDecimal

source§

impl Add for U192

§

type Output = U192

source§

impl Add for U256

§

type Output = U256

source§

impl Add for U320

§

type Output = U320

source§

impl Add for U384

§

type Output = U384

source§

impl Add for U448

§

type Output = U448

source§

impl Add for U512

§

type Output = U512

source§

impl Add for U768

§

type Output = U768

source§

impl Add for Assume

1.74.0 · source§

impl Add for Saturating<i8>

1.74.0 · source§

impl Add for Saturating<i16>

1.74.0 · source§

impl Add for Saturating<i32>

1.74.0 · source§

impl Add for Saturating<i64>

1.74.0 · source§

impl Add for Saturating<i128>

1.74.0 · source§

impl Add for Saturating<isize>

1.74.0 · source§

impl Add for Saturating<u8>

1.74.0 · source§

impl Add for Saturating<u16>

1.74.0 · source§

impl Add for Saturating<u32>

1.74.0 · source§

impl Add for Saturating<u64>

1.74.0 · source§

impl Add for Saturating<u128>

1.74.0 · source§

impl Add for Saturating<usize>

source§

impl Add for Wrapping<i8>

source§

impl Add for Wrapping<i16>

source§

impl Add for Wrapping<i32>

source§

impl Add for Wrapping<i64>

source§

impl Add for Wrapping<i128>

source§

impl Add for Wrapping<isize>

source§

impl Add for Wrapping<u8>

source§

impl Add for Wrapping<u16>

source§

impl Add for Wrapping<u32>

source§

impl Add for Wrapping<u64>

source§

impl Add for Wrapping<u128>

source§

impl Add for Wrapping<usize>

1.3.0 · source§

impl Add for Duration

source§

impl Add for EdwardsPoint

source§

impl Add for RistrettoPoint

source§

impl Add for Scalar

source§

impl Add for BigInt

source§

impl Add for BigUint

source§

impl Add for ATerm

source§

impl Add<&f32> for &f32

§

type Output = <f32 as Add>::Output

source§

impl Add<&f32> for f32

§

type Output = <f32 as Add>::Output

source§

impl Add<&f64> for &f64

§

type Output = <f64 as Add>::Output

source§

impl Add<&f64> for f64

§

type Output = <f64 as Add>::Output

source§

impl Add<&i8> for &i8

§

type Output = <i8 as Add>::Output

source§

impl Add<&i8> for &BigInt

source§

impl Add<&i8> for i8

§

type Output = <i8 as Add>::Output

source§

impl Add<&i8> for BigInt

source§

impl Add<&i16> for &i16

§

type Output = <i16 as Add>::Output

source§

impl Add<&i16> for &BigInt

source§

impl Add<&i16> for i16

§

type Output = <i16 as Add>::Output

source§

impl Add<&i16> for BigInt

source§

impl Add<&i32> for &i32

§

type Output = <i32 as Add>::Output

source§

impl Add<&i32> for &BigInt

source§

impl Add<&i32> for i32

§

type Output = <i32 as Add>::Output

source§

impl Add<&i32> for BigInt

source§

impl Add<&i64> for &i64

§

type Output = <i64 as Add>::Output

source§

impl Add<&i64> for &BigInt

source§

impl Add<&i64> for i64

§

type Output = <i64 as Add>::Output

source§

impl Add<&i64> for BigInt

source§

impl Add<&i128> for &i128

§

type Output = <i128 as Add>::Output

source§

impl Add<&i128> for &BigInt

source§

impl Add<&i128> for i128

§

type Output = <i128 as Add>::Output

source§

impl Add<&i128> for BigInt

source§

impl Add<&isize> for &isize

§

type Output = <isize as Add>::Output

source§

impl Add<&isize> for &BigInt

source§

impl Add<&isize> for isize

§

type Output = <isize as Add>::Output

source§

impl Add<&isize> for BigInt

source§

impl Add<&str> for String

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;
source§

impl Add<&u8> for &u8

§

type Output = <u8 as Add>::Output

source§

impl Add<&u8> for &BigInt

source§

impl Add<&u8> for &BigUint

source§

impl Add<&u8> for u8

§

type Output = <u8 as Add>::Output

source§

impl Add<&u8> for BigInt

source§

impl Add<&u8> for BigUint

source§

impl Add<&u16> for &u16

§

type Output = <u16 as Add>::Output

source§

impl Add<&u16> for &BigInt

source§

impl Add<&u16> for &BigUint

source§

impl Add<&u16> for u16

§

type Output = <u16 as Add>::Output

source§

impl Add<&u16> for BigInt

source§

impl Add<&u16> for BigUint

source§

impl Add<&u32> for &u32

§

type Output = <u32 as Add>::Output

source§

impl Add<&u32> for &BigInt

source§

impl Add<&u32> for &BigUint

source§

impl Add<&u32> for u32

§

type Output = <u32 as Add>::Output

source§

impl Add<&u32> for BigInt

source§

impl Add<&u32> for BigUint

source§

impl Add<&u64> for &u64

§

type Output = <u64 as Add>::Output

source§

impl Add<&u64> for &BigInt

source§

impl Add<&u64> for &BigUint

source§

impl Add<&u64> for u64

§

type Output = <u64 as Add>::Output

source§

impl Add<&u64> for BigInt

source§

impl Add<&u64> for BigUint

source§

impl Add<&u128> for &u128

§

type Output = <u128 as Add>::Output

source§

impl Add<&u128> for &BigInt

source§

impl Add<&u128> for &BigUint

source§

impl Add<&u128> for u128

§

type Output = <u128 as Add>::Output

source§

impl Add<&u128> for BigInt

source§

impl Add<&u128> for BigUint

source§

impl Add<&usize> for &usize

§

type Output = <usize as Add>::Output

source§

impl Add<&usize> for &BigInt

source§

impl Add<&usize> for &BigUint

source§

impl Add<&usize> for usize

§

type Output = <usize as Add>::Output

source§

impl Add<&usize> for BigInt

source§

impl Add<&usize> for BigUint

source§

impl Add<&I192> for &I192

§

type Output = <I192 as Add>::Output

source§

impl Add<&I192> for I192

§

type Output = <I192 as Add>::Output

source§

impl Add<&I256> for &I256

§

type Output = <I256 as Add>::Output

source§

impl Add<&I256> for I256

§

type Output = <I256 as Add>::Output

source§

impl Add<&I320> for &I320

§

type Output = <I320 as Add>::Output

source§

impl Add<&I320> for I320

§

type Output = <I320 as Add>::Output

source§

impl Add<&I384> for &I384

§

type Output = <I384 as Add>::Output

source§

impl Add<&I384> for I384

§

type Output = <I384 as Add>::Output

source§

impl Add<&I448> for &I448

§

type Output = <I448 as Add>::Output

source§

impl Add<&I448> for I448

§

type Output = <I448 as Add>::Output

source§

impl Add<&I512> for &I512

§

type Output = <I512 as Add>::Output

source§

impl Add<&I512> for I512

§

type Output = <I512 as Add>::Output

source§

impl Add<&I768> for &I768

§

type Output = <I768 as Add>::Output

source§

impl Add<&I768> for I768

§

type Output = <I768 as Add>::Output

source§

impl Add<&U192> for &U192

§

type Output = <U192 as Add>::Output

source§

impl Add<&U192> for U192

§

type Output = <U192 as Add>::Output

source§

impl Add<&U256> for &U256

§

type Output = <U256 as Add>::Output

source§

impl Add<&U256> for U256

§

type Output = <U256 as Add>::Output

source§

impl Add<&U320> for &U320

§

type Output = <U320 as Add>::Output

source§

impl Add<&U320> for U320

§

type Output = <U320 as Add>::Output

source§

impl Add<&U384> for &U384

§

type Output = <U384 as Add>::Output

source§

impl Add<&U384> for U384

§

type Output = <U384 as Add>::Output

source§

impl Add<&U448> for &U448

§

type Output = <U448 as Add>::Output

source§

impl Add<&U448> for U448

§

type Output = <U448 as Add>::Output

source§

impl Add<&U512> for &U512

§

type Output = <U512 as Add>::Output

source§

impl Add<&U512> for U512

§

type Output = <U512 as Add>::Output

source§

impl Add<&U768> for &U768

§

type Output = <U768 as Add>::Output

source§

impl Add<&U768> for U768

§

type Output = <U768 as Add>::Output

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.14.0 · source§

impl Add<&Wrapping<i8>> for &Wrapping<i8>

§

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

1.14.0 · source§

impl Add<&Wrapping<i8>> for Wrapping<i8>

§

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

1.14.0 · source§

impl Add<&Wrapping<i16>> for &Wrapping<i16>

1.14.0 · source§

impl Add<&Wrapping<i16>> for Wrapping<i16>

1.14.0 · source§

impl Add<&Wrapping<i32>> for &Wrapping<i32>

1.14.0 · source§

impl Add<&Wrapping<i32>> for Wrapping<i32>

1.14.0 · source§

impl Add<&Wrapping<i64>> for &Wrapping<i64>

1.14.0 · source§

impl Add<&Wrapping<i64>> for Wrapping<i64>

1.14.0 · source§

impl Add<&Wrapping<i128>> for &Wrapping<i128>

1.14.0 · source§

impl Add<&Wrapping<i128>> for Wrapping<i128>

1.14.0 · source§

impl Add<&Wrapping<isize>> for &Wrapping<isize>

1.14.0 · source§

impl Add<&Wrapping<isize>> for Wrapping<isize>

1.14.0 · source§

impl Add<&Wrapping<u8>> for &Wrapping<u8>

§

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

1.14.0 · source§

impl Add<&Wrapping<u8>> for Wrapping<u8>

§

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

1.14.0 · source§

impl Add<&Wrapping<u16>> for &Wrapping<u16>

1.14.0 · source§

impl Add<&Wrapping<u16>> for Wrapping<u16>

1.14.0 · source§

impl Add<&Wrapping<u32>> for &Wrapping<u32>

1.14.0 · source§

impl Add<&Wrapping<u32>> for Wrapping<u32>

1.14.0 · source§

impl Add<&Wrapping<u64>> for &Wrapping<u64>

1.14.0 · source§

impl Add<&Wrapping<u64>> for Wrapping<u64>

1.14.0 · source§

impl Add<&Wrapping<u128>> for &Wrapping<u128>

1.14.0 · source§

impl Add<&Wrapping<u128>> for Wrapping<u128>

1.14.0 · source§

impl Add<&Wrapping<usize>> for &Wrapping<usize>

1.14.0 · source§

impl Add<&Wrapping<usize>> for Wrapping<usize>

source§

impl Add<&BigInt> for &i8

source§

impl Add<&BigInt> for &i16

source§

impl Add<&BigInt> for &i32

source§

impl Add<&BigInt> for &i64

source§

impl Add<&BigInt> for &i128

source§

impl Add<&BigInt> for &isize

source§

impl Add<&BigInt> for &u8

source§

impl Add<&BigInt> for &u16

source§

impl Add<&BigInt> for &u32

source§

impl Add<&BigInt> for &u64

source§

impl Add<&BigInt> for &u128

source§

impl Add<&BigInt> for &usize

source§

impl Add<&BigInt> for &BigInt

source§

impl Add<&BigInt> for i8

source§

impl Add<&BigInt> for i16

source§

impl Add<&BigInt> for i32

source§

impl Add<&BigInt> for i64

source§

impl Add<&BigInt> for i128

source§

impl Add<&BigInt> for isize

source§

impl Add<&BigInt> for u8

source§

impl Add<&BigInt> for u16

source§

impl Add<&BigInt> for u32

source§

impl Add<&BigInt> for u64

source§

impl Add<&BigInt> for u128

source§

impl Add<&BigInt> for usize

source§

impl Add<&BigInt> for BigInt

source§

impl Add<&BigUint> for &u8

source§

impl Add<&BigUint> for &u16

source§

impl Add<&BigUint> for &u32

source§

impl Add<&BigUint> for &u64

source§

impl Add<&BigUint> for &u128

source§

impl Add<&BigUint> for &usize

source§

impl Add<&BigUint> for &BigUint

source§

impl Add<&BigUint> for u8

source§

impl Add<&BigUint> for u16

source§

impl Add<&BigUint> for u32

source§

impl Add<&BigUint> for u64

source§

impl Add<&BigUint> for u128

source§

impl Add<&BigUint> for usize

source§

impl Add<&BigUint> for BigUint

source§

impl Add<i8> for &BigInt

source§

impl Add<i8> for Decimal

source§

impl Add<i8> for PreciseDecimal

source§

impl Add<i8> for BigInt

source§

impl Add<i16> for &BigInt

source§

impl Add<i16> for Decimal

source§

impl Add<i16> for PreciseDecimal

source§

impl Add<i16> for BigInt

source§

impl Add<i32> for &BigInt

source§

impl Add<i32> for Decimal

source§

impl Add<i32> for PreciseDecimal

source§

impl Add<i32> for BigInt

source§

impl Add<i64> for &BigInt

source§

impl Add<i64> for Decimal

source§

impl Add<i64> for PreciseDecimal

source§

impl Add<i64> for BigInt

source§

impl Add<i128> for &BigInt

source§

impl Add<i128> for Decimal

source§

impl Add<i128> for PreciseDecimal

source§

impl Add<i128> for BigInt

source§

impl Add<isize> for &BigInt

source§

impl Add<isize> for Decimal

source§

impl Add<isize> for PreciseDecimal

source§

impl Add<isize> for BigInt

source§

impl Add<u8> for &BigInt

source§

impl Add<u8> for &BigUint

source§

impl Add<u8> for Decimal

source§

impl Add<u8> for PreciseDecimal

source§

impl Add<u8> for BigInt

source§

impl Add<u8> for BigUint

source§

impl Add<u16> for &BigInt

source§

impl Add<u16> for &BigUint

source§

impl Add<u16> for Decimal

source§

impl Add<u16> for PreciseDecimal

source§

impl Add<u16> for BigInt

source§

impl Add<u16> for BigUint

source§

impl Add<u32> for &BigInt

source§

impl Add<u32> for &BigUint

source§

impl Add<u32> for Decimal

source§

impl Add<u32> for PreciseDecimal

source§

impl Add<u32> for BigInt

source§

impl Add<u32> for BigUint

source§

impl Add<u64> for &BigInt

source§

impl Add<u64> for &BigUint

source§

impl Add<u64> for Decimal

source§

impl Add<u64> for PreciseDecimal

source§

impl Add<u64> for BigInt

source§

impl Add<u64> for BigUint

source§

impl Add<u128> for &BigInt

source§

impl Add<u128> for &BigUint

source§

impl Add<u128> for Decimal

source§

impl Add<u128> for PreciseDecimal

source§

impl Add<u128> for BigInt

source§

impl Add<u128> for BigUint

source§

impl Add<usize> for &BigInt

source§

impl Add<usize> for &BigUint

source§

impl Add<usize> for Decimal

source§

impl Add<usize> for PreciseDecimal

source§

impl Add<usize> for BigInt

source§

impl Add<usize> for BigUint

source§

impl Add<Decimal> for i8

source§

impl Add<Decimal> for i16

source§

impl Add<Decimal> for i32

source§

impl Add<Decimal> for i64

source§

impl Add<Decimal> for i128

source§

impl Add<Decimal> for isize

source§

impl Add<Decimal> for u8

source§

impl Add<Decimal> for u16

source§

impl Add<Decimal> for u32

source§

impl Add<Decimal> for u64

source§

impl Add<Decimal> for u128

source§

impl Add<Decimal> for usize

source§

impl Add<Decimal> for I192

source§

impl Add<Decimal> for I256

source§

impl Add<Decimal> for I320

source§

impl Add<Decimal> for I448

source§

impl Add<Decimal> for I512

source§

impl Add<Decimal> for PreciseDecimal

source§

impl Add<Decimal> for U192

source§

impl Add<Decimal> for U256

source§

impl Add<Decimal> for U320

source§

impl Add<Decimal> for U448

source§

impl Add<Decimal> for U512

source§

impl Add<I192> for Decimal

source§

impl Add<I192> for PreciseDecimal

source§

impl Add<I256> for Decimal

source§

impl Add<I256> for PreciseDecimal

source§

impl Add<I320> for Decimal

source§

impl Add<I320> for PreciseDecimal

source§

impl Add<I448> for Decimal

source§

impl Add<I448> for PreciseDecimal

source§

impl Add<I512> for Decimal

source§

impl Add<I512> for PreciseDecimal

source§

impl Add<PreciseDecimal> for i8

source§

impl Add<PreciseDecimal> for i16

source§

impl Add<PreciseDecimal> for i32

source§

impl Add<PreciseDecimal> for i64

source§

impl Add<PreciseDecimal> for i128

source§

impl Add<PreciseDecimal> for isize

source§

impl Add<PreciseDecimal> for u8

source§

impl Add<PreciseDecimal> for u16

source§

impl Add<PreciseDecimal> for u32

source§

impl Add<PreciseDecimal> for u64

source§

impl Add<PreciseDecimal> for u128

source§

impl Add<PreciseDecimal> for usize

source§

impl Add<PreciseDecimal> for Decimal

source§

impl Add<PreciseDecimal> for I192

source§

impl Add<PreciseDecimal> for I256

source§

impl Add<PreciseDecimal> for I320

source§

impl Add<PreciseDecimal> for I448

source§

impl Add<PreciseDecimal> for I512

source§

impl Add<PreciseDecimal> for U192

source§

impl Add<PreciseDecimal> for U256

source§

impl Add<PreciseDecimal> for U320

source§

impl Add<PreciseDecimal> for U448

source§

impl Add<PreciseDecimal> for U512

source§

impl Add<U192> for Decimal

source§

impl Add<U192> for PreciseDecimal

source§

impl Add<U256> for Decimal

source§

impl Add<U256> for PreciseDecimal

source§

impl Add<U320> for Decimal

source§

impl Add<U320> for PreciseDecimal

source§

impl Add<U448> for Decimal

source§

impl Add<U448> for PreciseDecimal

source§

impl Add<U512> for Decimal

source§

impl Add<U512> for PreciseDecimal

1.8.0 · source§

impl Add<Duration> for Instant

1.8.0 · source§

impl Add<Duration> for SystemTime

source§

impl Add<BigInt> for &i8

source§

impl Add<BigInt> for &i16

source§

impl Add<BigInt> for &i32

source§

impl Add<BigInt> for &i64

source§

impl Add<BigInt> for &i128

source§

impl Add<BigInt> for &isize

source§

impl Add<BigInt> for &u8

source§

impl Add<BigInt> for &u16

source§

impl Add<BigInt> for &u32

source§

impl Add<BigInt> for &u64

source§

impl Add<BigInt> for &u128

source§

impl Add<BigInt> for &usize

source§

impl Add<BigInt> for &BigInt

source§

impl Add<BigInt> for i8

source§

impl Add<BigInt> for i16

source§

impl Add<BigInt> for i32

source§

impl Add<BigInt> for i64

source§

impl Add<BigInt> for i128

source§

impl Add<BigInt> for isize

source§

impl Add<BigInt> for u8

source§

impl Add<BigInt> for u16

source§

impl Add<BigInt> for u32

source§

impl Add<BigInt> for u64

source§

impl Add<BigInt> for u128

source§

impl Add<BigInt> for usize

source§

impl Add<BigUint> for &u8

source§

impl Add<BigUint> for &u16

source§

impl Add<BigUint> for &u32

source§

impl Add<BigUint> for &u64

source§

impl Add<BigUint> for &u128

source§

impl Add<BigUint> for &usize

source§

impl Add<BigUint> for &BigUint

source§

impl Add<BigUint> for u8

source§

impl Add<BigUint> for u16

source§

impl Add<BigUint> for u32

source§

impl Add<BigUint> for u64

source§

impl Add<BigUint> for u128

source§

impl Add<BigUint> for usize

source§

impl Add<B0> for UTerm

UTerm + B0 = UTerm

source§

impl Add<B1> for UTerm

UTerm + B1 = UInt<UTerm, B1>

1.14.0 · source§

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

§

type Output = Cow<'a, str>

1.14.0 · source§

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

§

type Output = Cow<'a, str>

source§

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

§

type Output = <f32 as Add>::Output

source§

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

§

type Output = <f64 as Add>::Output

source§

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

§

type Output = <i8 as Add>::Output

source§

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

§

type Output = <i16 as Add>::Output

source§

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

§

type Output = <i32 as Add>::Output

source§

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

§

type Output = <i64 as Add>::Output

source§

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

§

type Output = <i128 as Add>::Output

source§

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

§

type Output = <isize as Add>::Output

source§

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

§

type Output = <u8 as Add>::Output

source§

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

§

type Output = <u16 as Add>::Output

source§

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

§

type Output = <u32 as Add>::Output

source§

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

§

type Output = <u64 as Add>::Output

source§

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

§

type Output = <u128 as Add>::Output

source§

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

§

type Output = <usize as Add>::Output

source§

impl<'a> Add<I192> for &'a I192

§

type Output = <I192 as Add>::Output

source§

impl<'a> Add<I256> for &'a I256

§

type Output = <I256 as Add>::Output

source§

impl<'a> Add<I320> for &'a I320

§

type Output = <I320 as Add>::Output

source§

impl<'a> Add<I384> for &'a I384

§

type Output = <I384 as Add>::Output

source§

impl<'a> Add<I448> for &'a I448

§

type Output = <I448 as Add>::Output

source§

impl<'a> Add<I512> for &'a I512

§

type Output = <I512 as Add>::Output

source§

impl<'a> Add<I768> for &'a I768

§

type Output = <I768 as Add>::Output

source§

impl<'a> Add<U192> for &'a U192

§

type Output = <U192 as Add>::Output

source§

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

§

type Output = <U256 as Add>::Output

source§

impl<'a> Add<U320> for &'a U320

§

type Output = <U320 as Add>::Output

source§

impl<'a> Add<U384> for &'a U384

§

type Output = <U384 as Add>::Output

source§

impl<'a> Add<U448> for &'a U448

§

type Output = <U448 as Add>::Output

source§

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

§

type Output = <U512 as Add>::Output

source§

impl<'a> Add<U768> for &'a U768

§

type Output = <U768 as Add>::Output

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.74.0 · source§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

1.14.0 · source§

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

source§

impl<'a> Add<EdwardsPoint> for &'a EdwardsPoint

source§

impl<'a> Add<RistrettoPoint> for &'a RistrettoPoint

source§

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

source§

impl<'a, 'b> Add<&'b AffineNielsPoint> for &'a EdwardsPoint

source§

impl<'a, 'b> Add<&'b ProjectiveNielsPoint> for &'a EdwardsPoint

source§

impl<'a, 'b> Add<&'b EdwardsPoint> for &'a EdwardsPoint

source§

impl<'a, 'b> Add<&'b RistrettoPoint> for &'a RistrettoPoint

source§

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

source§

impl<'b> Add<&'b EdwardsPoint> for EdwardsPoint

source§

impl<'b> Add<&'b RistrettoPoint> for RistrettoPoint

source§

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

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>>, LaneCount<N>: SupportedLaneCount,

§

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>,

§

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

§

type Output = I

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>>, LaneCount<N>: SupportedLaneCount,

§

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>>, LaneCount<N>: SupportedLaneCount,

§

type Output = Simd<T, N>

source§

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

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

§

type Output = 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>

§

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

source§

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

NInt + Z0 = NInt

§

type Output = NInt<U>

source§

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

PInt + Z0 = PInt

§

type Output = PInt<U>

source§

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

UTerm + U = U

§

type Output = U

source§

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

U + B0 = U

§

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>

§

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)

§

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

§

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

§

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)

§

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>

§

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>

§

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>

§

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>

§

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

source§

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

§

type Output = Simd<f32, N>

source§

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

§

type Output = Simd<f64, N>

source§

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

§

type Output = Simd<i8, N>

source§

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

§

type Output = Simd<i16, N>

source§

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

§

type Output = Simd<i32, N>

source§

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

§

type Output = Simd<i64, N>

source§

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

§

type Output = Simd<isize, N>

source§

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

§

type Output = Simd<u8, N>

source§

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

§

type Output = Simd<u16, N>

source§

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

§

type Output = Simd<u32, N>

source§

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

§

type Output = Simd<u64, N>

source§

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

§

type Output = Simd<usize, N>

§

impl<const N: usize> Add for BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Add for BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Add for BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Add for BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Add for BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Add for BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Add for BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Add for BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Add<&BInt<N>> for &BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Add<&BInt<N>> for BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Add<&BIntD8<N>> for &BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Add<&BIntD8<N>> for BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Add<&BIntD16<N>> for &BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Add<&BIntD16<N>> for BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Add<&BIntD32<N>> for &BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Add<&BIntD32<N>> for BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Add<&BUint<N>> for &BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Add<&BUint<N>> for BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Add<&BUintD8<N>> for &BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Add<&BUintD8<N>> for BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Add<&BUintD16<N>> for &BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Add<&BUintD16<N>> for BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Add<&BUintD32<N>> for &BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Add<&BUintD32<N>> for BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Add<u8> for BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Add<u16> for BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Add<u32> for BUintD32<N>

§

type Output = BUintD32<N>

§

impl<const N: usize> Add<u64> for BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Add<BInt<N>> for &BInt<N>

§

type Output = BInt<N>

§

impl<const N: usize> Add<BIntD8<N>> for &BIntD8<N>

§

type Output = BIntD8<N>

§

impl<const N: usize> Add<BIntD16<N>> for &BIntD16<N>

§

type Output = BIntD16<N>

§

impl<const N: usize> Add<BIntD32<N>> for &BIntD32<N>

§

type Output = BIntD32<N>

§

impl<const N: usize> Add<BUint<N>> for &BUint<N>

§

type Output = BUint<N>

§

impl<const N: usize> Add<BUintD8<N>> for &BUintD8<N>

§

type Output = BUintD8<N>

§

impl<const N: usize> Add<BUintD16<N>> for &BUintD16<N>

§

type Output = BUintD16<N>

§

impl<const N: usize> Add<BUintD32<N>> for &BUintD32<N>

§

type Output = BUintD32<N>