Trait Add

1.6.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ยง

Sourceยง

impl Add for &JsValue

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 BuildQueueSettings

Sourceยง

impl Add for GitlabSettings

Sourceยง

impl Add for ServerSettings

Sourceยง

impl Add for SettingsSpec

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>

1.0.0 ยท Sourceยง

impl Add for Wrapping<i8>

1.0.0 ยท Sourceยง

impl Add for Wrapping<i16>

1.0.0 ยท Sourceยง

impl Add for Wrapping<i32>

1.0.0 ยท Sourceยง

impl Add for Wrapping<i64>

1.0.0 ยท Sourceยง

impl Add for Wrapping<i128>

1.0.0 ยท Sourceยง

impl Add for Wrapping<isize>

1.0.0 ยท Sourceยง

impl Add for Wrapping<u8>

1.0.0 ยท Sourceยง

impl Add for Wrapping<u16>

1.0.0 ยท Sourceยง

impl Add for Wrapping<u32>

1.0.0 ยท Sourceยง

impl Add for Wrapping<u64>

1.0.0 ยท Sourceยง

impl Add for Wrapping<u128>

1.0.0 ยท Sourceยง

impl Add for Wrapping<usize>

1.3.0 ยท Sourceยง

impl Add for flams_router_vscode::server_fn::inventory::core::time::Duration

Sourceยง

impl Add for TimeDelta

Sourceยง

impl Add for BigInt

Sourceยง

type Output = <&'static BigInt as Add>::Output

Sourceยง

impl Add for Number

Sourceยง

type Output = <&'static Number as Add>::Output

Sourceยง

impl Add for ATerm

Sourceยง

impl Add for JsValue

Sourceยง

type Output = <&'static JsValue as Add>::Output

ยง

impl Add for Angle

ยง

type Output = Angle

ยง

impl Add for ByteCount

ยง

type Output = ByteCount

ยง

impl Add for Double

ยง

type Output = Double

ยง

impl Add for Duration

ยง

type Output = Duration

ยง

impl Add for Expression

ยง

type Output = Expression

ยง

impl Add for Float

ยง

type Output = Float

ยง

impl Add for Length

ยง

type Output = Length

ยง

impl Add for LengthHint

ยง

type Output = LengthHint

ยง

impl Add for Percentage

ยง

type Output = Percentage

ยง

impl Add for Rgb

ยง

type Output = Rgb

ยง

impl Add for Time

ยง

type Output = Time

ยง

impl Add for Timespec

ยง

type Output = Timespec

1.0.0 ยท Sourceยง

impl Add<&f16> for &f16

1.0.0 ยท Sourceยง

impl Add<&f16> for f16

1.0.0 ยท Sourceยง

impl Add<&f32> for &f32

1.0.0 ยท Sourceยง

impl Add<&f32> for f32

1.0.0 ยท Sourceยง

impl Add<&f64> for &f64

1.0.0 ยท Sourceยง

impl Add<&f64> for f64

1.0.0 ยท Sourceยง

impl Add<&f128> for &f128

1.0.0 ยท Sourceยง

impl Add<&f128> for f128

1.0.0 ยท Sourceยง

impl Add<&i8> for &i8

1.0.0 ยท Sourceยง

impl Add<&i8> for i8

1.0.0 ยท Sourceยง

impl Add<&i16> for &i16

1.0.0 ยท Sourceยง

impl Add<&i16> for i16

1.0.0 ยท Sourceยง

impl Add<&i32> for &i32

1.0.0 ยท Sourceยง

impl Add<&i32> for i32

1.0.0 ยท Sourceยง

impl Add<&i64> for &i64

1.0.0 ยท Sourceยง

impl Add<&i64> for i64

1.0.0 ยท Sourceยง

impl Add<&i128> for &i128

1.0.0 ยท Sourceยง

impl Add<&i128> for i128

1.0.0 ยท Sourceยง

impl Add<&isize> for &isize

1.0.0 ยท Sourceยง

impl Add<&isize> for isize

1.0.0 ยท 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;
1.0.0 ยท Sourceยง

impl Add<&u8> for &u8

1.0.0 ยท Sourceยง

impl Add<&u8> for u8

1.0.0 ยท Sourceยง

impl Add<&u16> for &u16

1.0.0 ยท Sourceยง

impl Add<&u16> for u16

1.0.0 ยท Sourceยง

impl Add<&u32> for &u32

1.0.0 ยท Sourceยง

impl Add<&u32> for u32

1.0.0 ยท Sourceยง

impl Add<&u64> for &u64

1.0.0 ยท Sourceยง

impl Add<&u64> for u64

1.0.0 ยท Sourceยง

impl Add<&u128> for &u128

1.0.0 ยท Sourceยง

impl Add<&u128> for u128

1.0.0 ยท Sourceยง

impl Add<&usize> for &usize

1.0.0 ยท Sourceยง

impl Add<&usize> for usize

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>

1.14.0 ยท Sourceยง

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

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>

1.14.0 ยท Sourceยง

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

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 &BigInt

Sourceยง

impl Add<&BigInt> for BigInt

Sourceยง

type Output = <&'static BigInt as Add>::Output

Sourceยง

impl Add<&Number> for &Number

Sourceยง

impl Add<&Number> for Number

Sourceยง

type Output = <&'static Number as Add>::Output

Sourceยง

impl Add<&BigNumRef> for &BigNumRef

Sourceยง

impl Add<&JsValue> for JsValue

Sourceยง

type Output = <&'static JsValue as Add>::Output

ยง

impl Add<&Rgb> for &Rgb

ยง

type Output = Rgb

ยง

impl Add<&Rgb> for Rgb

ยง

type Output = Rgb

ยง

impl Add<f32> for Ratio

ยง

type Output = Ratio

ยง

impl Add<f32> for Resolution

ยง

type Output = Resolution

ยง

impl Add<usize> for LengthHint

ยง

type Output = LengthHint

ยง

impl Add<usize> for Span

ยง

type Output = Span

1.8.0 ยท Sourceยง

impl Add<Duration> for std::time::Instant

1.8.0 ยท Sourceยง

impl Add<Duration> for SystemTime

Sourceยง

impl Add<Duration> for NaiveDateTime

Add std::time::Duration to NaiveDateTime.

As a part of Chronoโ€™s [leap second handling], the addition assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_add_signed to get an Option instead.

Sourceยง

impl Add<Duration> for NaiveTime

Add std::time::Duration to NaiveTime.

This wraps around and never overflows or underflows. In particular the addition ignores integral number of days.

ยง

impl Add<Duration> for Date

ยง

type Output = Date

ยง

impl Add<Duration> for Duration

ยง

type Output = Duration

ยง

impl Add<Duration> for Instant

ยง

type Output = Instant

ยง

impl Add<Duration> for OffsetDateTime

ยง

type Output = OffsetDateTime

ยง

impl Add<Duration> for PrimitiveDateTime

ยง

type Output = PrimitiveDateTime

ยง

impl Add<Duration> for Time

ยง

type Output = Time

ยง

impl Add<Duration> for UtcDateTime

ยง

type Output = UtcDateTime

Sourceยง

impl Add<Months> for NaiveDate

Add Months to NaiveDate.

The result will be clamped to valid days in the resulting month, see checked_add_months for details.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_add_months to get an Option instead.

ยงExample

use chrono::{Months, NaiveDate};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

assert_eq!(from_ymd(2014, 1, 1) + Months::new(1), from_ymd(2014, 2, 1));
assert_eq!(from_ymd(2014, 1, 1) + Months::new(11), from_ymd(2014, 12, 1));
assert_eq!(from_ymd(2014, 1, 1) + Months::new(12), from_ymd(2015, 1, 1));
assert_eq!(from_ymd(2014, 1, 1) + Months::new(13), from_ymd(2015, 2, 1));
assert_eq!(from_ymd(2014, 1, 31) + Months::new(1), from_ymd(2014, 2, 28));
assert_eq!(from_ymd(2020, 1, 31) + Months::new(1), from_ymd(2020, 2, 29));
Sourceยง

impl Add<Months> for NaiveDateTime

Add Months to NaiveDateTime.

The result will be clamped to valid days in the resulting month, see checked_add_months for details.

ยงPanics

Panics if the resulting date would be out of range. Consider using checked_add_months to get an Option instead.

ยงExample

use chrono::{Months, NaiveDate};

assert_eq!(
    NaiveDate::from_ymd_opt(2014, 1, 1).unwrap().and_hms_opt(1, 0, 0).unwrap() + Months::new(1),
    NaiveDate::from_ymd_opt(2014, 2, 1).unwrap().and_hms_opt(1, 0, 0).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2014, 1, 1).unwrap().and_hms_opt(0, 2, 0).unwrap()
        + Months::new(11),
    NaiveDate::from_ymd_opt(2014, 12, 1).unwrap().and_hms_opt(0, 2, 0).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2014, 1, 1).unwrap().and_hms_opt(0, 0, 3).unwrap()
        + Months::new(12),
    NaiveDate::from_ymd_opt(2015, 1, 1).unwrap().and_hms_opt(0, 0, 3).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2014, 1, 1).unwrap().and_hms_opt(0, 0, 4).unwrap()
        + Months::new(13),
    NaiveDate::from_ymd_opt(2015, 2, 1).unwrap().and_hms_opt(0, 0, 4).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2014, 1, 31).unwrap().and_hms_opt(0, 5, 0).unwrap()
        + Months::new(1),
    NaiveDate::from_ymd_opt(2014, 2, 28).unwrap().and_hms_opt(0, 5, 0).unwrap()
);
assert_eq!(
    NaiveDate::from_ymd_opt(2020, 1, 31).unwrap().and_hms_opt(6, 0, 0).unwrap()
        + Months::new(1),
    NaiveDate::from_ymd_opt(2020, 2, 29).unwrap().and_hms_opt(6, 0, 0).unwrap()
);
Sourceยง

impl Add<Days> for NaiveDate

Add Days to NaiveDate.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_add_days to get an Option instead.

Sourceยง

impl Add<Days> for NaiveDateTime

Add Days to NaiveDateTime.

ยงPanics

Panics if the resulting date would be out of range. Consider using checked_add_days to get an Option instead.

Sourceยง

impl Add<FixedOffset> for NaiveDateTime

Add FixedOffset to NaiveDateTime.

ยงPanics

Panics if the resulting date would be out of range. Consider using checked_add_offset to get an Option instead.

Sourceยง

impl Add<FixedOffset> for NaiveTime

Add FixedOffset to NaiveTime.

This wraps around and never overflows or underflows. In particular the addition ignores integral number of days.

Sourceยง

impl Add<TimeDelta> for NaiveDate

Add TimeDelta to NaiveDate.

This discards the fractional days in TimeDelta, rounding to the closest integral number of days towards TimeDelta::zero().

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDate::checked_add_signed to get an Option instead.

ยงExample

use chrono::{NaiveDate, TimeDelta};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

assert_eq!(from_ymd(2014, 1, 1) + TimeDelta::zero(), from_ymd(2014, 1, 1));
assert_eq!(from_ymd(2014, 1, 1) + TimeDelta::try_seconds(86399).unwrap(), from_ymd(2014, 1, 1));
assert_eq!(
    from_ymd(2014, 1, 1) + TimeDelta::try_seconds(-86399).unwrap(),
    from_ymd(2014, 1, 1)
);
assert_eq!(from_ymd(2014, 1, 1) + TimeDelta::try_days(1).unwrap(), from_ymd(2014, 1, 2));
assert_eq!(from_ymd(2014, 1, 1) + TimeDelta::try_days(-1).unwrap(), from_ymd(2013, 12, 31));
assert_eq!(from_ymd(2014, 1, 1) + TimeDelta::try_days(364).unwrap(), from_ymd(2014, 12, 31));
assert_eq!(
    from_ymd(2014, 1, 1) + TimeDelta::try_days(365 * 4 + 1).unwrap(),
    from_ymd(2018, 1, 1)
);
assert_eq!(
    from_ymd(2014, 1, 1) + TimeDelta::try_days(365 * 400 + 97).unwrap(),
    from_ymd(2414, 1, 1)
);
Sourceยง

impl Add<TimeDelta> for NaiveDateTime

Add TimeDelta to NaiveDateTime.

As a part of Chronoโ€™s leap second handling, the addition assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using NaiveDateTime::checked_add_signed to get an Option instead.

ยงExample

use chrono::{NaiveDate, TimeDelta};

let from_ymd = |y, m, d| NaiveDate::from_ymd_opt(y, m, d).unwrap();

let d = from_ymd(2016, 7, 8);
let hms = |h, m, s| d.and_hms_opt(h, m, s).unwrap();
assert_eq!(hms(3, 5, 7) + TimeDelta::zero(), hms(3, 5, 7));
assert_eq!(hms(3, 5, 7) + TimeDelta::try_seconds(1).unwrap(), hms(3, 5, 8));
assert_eq!(hms(3, 5, 7) + TimeDelta::try_seconds(-1).unwrap(), hms(3, 5, 6));
assert_eq!(hms(3, 5, 7) + TimeDelta::try_seconds(3600 + 60).unwrap(), hms(4, 6, 7));
assert_eq!(
    hms(3, 5, 7) + TimeDelta::try_seconds(86_400).unwrap(),
    from_ymd(2016, 7, 9).and_hms_opt(3, 5, 7).unwrap()
);
assert_eq!(
    hms(3, 5, 7) + TimeDelta::try_days(365).unwrap(),
    from_ymd(2017, 7, 8).and_hms_opt(3, 5, 7).unwrap()
);

let hmsm = |h, m, s, milli| d.and_hms_milli_opt(h, m, s, milli).unwrap();
assert_eq!(hmsm(3, 5, 7, 980) + TimeDelta::try_milliseconds(450).unwrap(), hmsm(3, 5, 8, 430));

Leap seconds are handled, but the addition assumes that it is the only leap second happened.

let leap = hmsm(3, 5, 59, 1_300);
assert_eq!(leap + TimeDelta::zero(), hmsm(3, 5, 59, 1_300));
assert_eq!(leap + TimeDelta::try_milliseconds(-500).unwrap(), hmsm(3, 5, 59, 800));
assert_eq!(leap + TimeDelta::try_milliseconds(500).unwrap(), hmsm(3, 5, 59, 1_800));
assert_eq!(leap + TimeDelta::try_milliseconds(800).unwrap(), hmsm(3, 6, 0, 100));
assert_eq!(leap + TimeDelta::try_seconds(10).unwrap(), hmsm(3, 6, 9, 300));
assert_eq!(leap + TimeDelta::try_seconds(-10).unwrap(), hmsm(3, 5, 50, 300));
assert_eq!(leap + TimeDelta::try_days(1).unwrap(),
           from_ymd(2016, 7, 9).and_hms_milli_opt(3, 5, 59, 300).unwrap());
Sourceยง

impl Add<TimeDelta> for NaiveTime

Add TimeDelta to NaiveTime.

This wraps around and never overflows or underflows. In particular the addition ignores integral number of days.

As a part of Chronoโ€™s leap second handling, the addition assumes that there is no leap second ever, except when the NaiveTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงExample

use chrono::{NaiveTime, TimeDelta};

let from_hmsm = |h, m, s, milli| NaiveTime::from_hms_milli_opt(h, m, s, milli).unwrap();

assert_eq!(from_hmsm(3, 5, 7, 0) + TimeDelta::zero(), from_hmsm(3, 5, 7, 0));
assert_eq!(from_hmsm(3, 5, 7, 0) + TimeDelta::try_seconds(1).unwrap(), from_hmsm(3, 5, 8, 0));
assert_eq!(from_hmsm(3, 5, 7, 0) + TimeDelta::try_seconds(-1).unwrap(), from_hmsm(3, 5, 6, 0));
assert_eq!(
    from_hmsm(3, 5, 7, 0) + TimeDelta::try_seconds(60 + 4).unwrap(),
    from_hmsm(3, 6, 11, 0)
);
assert_eq!(
    from_hmsm(3, 5, 7, 0) + TimeDelta::try_seconds(7 * 60 * 60 - 6 * 60).unwrap(),
    from_hmsm(9, 59, 7, 0)
);
assert_eq!(
    from_hmsm(3, 5, 7, 0) + TimeDelta::try_milliseconds(80).unwrap(),
    from_hmsm(3, 5, 7, 80)
);
assert_eq!(
    from_hmsm(3, 5, 7, 950) + TimeDelta::try_milliseconds(280).unwrap(),
    from_hmsm(3, 5, 8, 230)
);
assert_eq!(
    from_hmsm(3, 5, 7, 950) + TimeDelta::try_milliseconds(-980).unwrap(),
    from_hmsm(3, 5, 6, 970)
);

The addition wraps around.

assert_eq!(from_hmsm(3, 5, 7, 0) + TimeDelta::try_seconds(22*60*60).unwrap(), from_hmsm(1, 5, 7, 0));
assert_eq!(from_hmsm(3, 5, 7, 0) + TimeDelta::try_seconds(-8*60*60).unwrap(), from_hmsm(19, 5, 7, 0));
assert_eq!(from_hmsm(3, 5, 7, 0) + TimeDelta::try_days(800).unwrap(), from_hmsm(3, 5, 7, 0));

Leap seconds are handled, but the addition assumes that it is the only leap second happened.

let leap = from_hmsm(3, 5, 59, 1_300);
assert_eq!(leap + TimeDelta::zero(), from_hmsm(3, 5, 59, 1_300));
assert_eq!(leap + TimeDelta::try_milliseconds(-500).unwrap(), from_hmsm(3, 5, 59, 800));
assert_eq!(leap + TimeDelta::try_milliseconds(500).unwrap(), from_hmsm(3, 5, 59, 1_800));
assert_eq!(leap + TimeDelta::try_milliseconds(800).unwrap(), from_hmsm(3, 6, 0, 100));
assert_eq!(leap + TimeDelta::try_seconds(10).unwrap(), from_hmsm(3, 6, 9, 300));
assert_eq!(leap + TimeDelta::try_seconds(-10).unwrap(), from_hmsm(3, 5, 50, 300));
assert_eq!(leap + TimeDelta::try_days(1).unwrap(), from_hmsm(3, 5, 59, 300));
Sourceยง

impl Add<Cam16Hue> for f32

Sourceยง

impl Add<Cam16Hue<f64>> for f64

Sourceยง

impl Add<LabHue> for f32

Sourceยง

impl Add<LabHue<f64>> for f64

Sourceยง

impl Add<LuvHue> for f32

Sourceยง

impl Add<LuvHue<f64>> for f64

Sourceยง

impl Add<OklabHue> for f32

Sourceยง

impl Add<OklabHue<f64>> for f64

Sourceยง

impl Add<RgbHue> for f32

Sourceยง

impl Add<RgbHue<f64>> for f64

Sourceยง

impl Add<B0> for UTerm

UTerm + B0 = UTerm

Sourceยง

impl Add<B1> for UTerm

UTerm + B1 = UInt<UTerm, B1>

ยง

impl Add<Duration> for flams_router_vscode::server_fn::inventory::core::time::Duration

ยง

type Output = Duration

ยง

impl Add<Duration> for std::time::Instant

ยง

impl Add<Duration> for SystemTime

ยง

impl Add<Duration> for Date

ยง

type Output = Date

ยง

impl Add<Duration> for OffsetDateTime

ยง

type Output = OffsetDateTime

ยง

impl Add<Duration> for PrimitiveDateTime

ยง

type Output = PrimitiveDateTime

ยง

impl Add<Duration> for Time

ยง

type Output = Time

ยง

impl Add<Duration> for UtcDateTime

ยง

type Output = UtcDateTime

ยง

impl Add<Rgb> for &Rgb

ยง

type Output = Rgb

ยง

impl Add<Span> for usize

ยง

type Output = Span

1.14.0 ยท Sourceยง

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

1.14.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

1.0.0 ยท Sourceยง

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

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>

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>

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<BigInt> for &'a BigInt

Sourceยง

type Output = <&'static BigInt as Add>::Output

Sourceยง

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

Sourceยง

type Output = <&'static Number as Add>::Output

Sourceยง

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

Sourceยง

type Output = <&'static JsValue as Add>::Output

Sourceยง

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

Sourceยง

impl<'a, 'b> Add<&'b BigNum> for &'a BigNumRef

Sourceยง

impl<'a, 'b> Add<&'b BigNumRef> for &'a BigNum

ยง

impl<'b> Add<&'b str> for Oco<'_, str>

ยง

type Output = Oco<'static, str>

ยง

impl<'b> Add<Oco<'b, str>> for Oco<'_, str>

ยง

type Output = Oco<'static, str>

ยง

impl<'b> Add<Cow<'b, str>> for Oco<'_, str>

ยง

type Output = Oco<'static, 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>>, LaneCount<N>: SupportedLaneCount,

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<C> Add for PreAlpha<C>
where C: Premultiply + Add<Output = C>, <C as Premultiply>::Scalar: Add<Output = <C as Premultiply>::Scalar>,

Sourceยง

impl<C> Add<f32> for PreAlpha<C>
where C: Premultiply<Scalar = f32> + Add<f32, Output = C>,

Sourceยง

impl<C> Add<f64> for PreAlpha<C>
where C: Premultiply<Scalar = f64> + Add<f64, Output = C>,

Sourceยง

impl<C, T> Add for Alpha<C, T>
where C: Add, T: Add,

Sourceยง

type Output = Alpha<<C as Add>::Output, <T as Add>::Output>

ยง

impl<D> Add for DimensionPercentage<D>
where D: TryAdd<D> + Clone + Zero + TrySign + Debug,

ยง

type Output = DimensionPercentage<D>

Sourceยง

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

Z0 + I = I

ยง

impl<O> Add for F32<O>
where O: ByteOrder,

ยง

type Output = F32<O>

ยง

impl<O> Add for F64<O>
where O: ByteOrder,

ยง

type Output = F64<O>

ยง

impl<O> Add for I16<O>
where O: ByteOrder,

ยง

type Output = I16<O>

ยง

impl<O> Add for I32<O>
where O: ByteOrder,

ยง

type Output = I32<O>

ยง

impl<O> Add for I64<O>
where O: ByteOrder,

ยง

type Output = I64<O>

ยง

impl<O> Add for I128<O>
where O: ByteOrder,

ยง

type Output = I128<O>

ยง

impl<O> Add for Isize<O>
where O: ByteOrder,

ยง

type Output = Isize<O>

ยง

impl<O> Add for U16<O>
where O: ByteOrder,

ยง

type Output = U16<O>

ยง

impl<O> Add for U32<O>
where O: ByteOrder,

ยง

type Output = U32<O>

ยง

impl<O> Add for U64<O>
where O: ByteOrder,

ยง

type Output = U64<O>

ยง

impl<O> Add for U128<O>
where O: ByteOrder,

ยง

type Output = U128<O>

ยง

impl<O> Add for Usize<O>
where O: ByteOrder,

ยง

type Output = Usize<O>

ยง

impl<O> Add<f32> for F32<O>
where O: ByteOrder,

ยง

type Output = F32<O>

ยง

impl<O> Add<f64> for F64<O>
where O: ByteOrder,

ยง

type Output = F64<O>

ยง

impl<O> Add<i16> for I16<O>
where O: ByteOrder,

ยง

type Output = I16<O>

ยง

impl<O> Add<i32> for I32<O>
where O: ByteOrder,

ยง

type Output = I32<O>

ยง

impl<O> Add<i64> for I64<O>
where O: ByteOrder,

ยง

type Output = I64<O>

ยง

impl<O> Add<i128> for I128<O>
where O: ByteOrder,

ยง

type Output = I128<O>

ยง

impl<O> Add<isize> for Isize<O>
where O: ByteOrder,

ยง

type Output = Isize<O>

ยง

impl<O> Add<u16> for U16<O>
where O: ByteOrder,

ยง

type Output = U16<O>

ยง

impl<O> Add<u32> for U32<O>
where O: ByteOrder,

ยง

type Output = U32<O>

ยง

impl<O> Add<u64> for U64<O>
where O: ByteOrder,

ยง

type Output = U64<O>

ยง

impl<O> Add<u128> for U128<O>
where O: ByteOrder,

ยง

type Output = U128<O>

ยง

impl<O> Add<usize> for Usize<O>
where O: ByteOrder,

ยง

type Output = Usize<O>

ยง

impl<O> Add<F32<O>> for f32
where O: ByteOrder,

ยง

type Output = F32<O>

ยง

impl<O> Add<F64<O>> for f64
where O: ByteOrder,

ยง

type Output = F64<O>

ยง

impl<O> Add<I16<O>> for i16
where O: ByteOrder,

ยง

type Output = I16<O>

ยง

impl<O> Add<I32<O>> for i32
where O: ByteOrder,

ยง

type Output = I32<O>

ยง

impl<O> Add<I64<O>> for i64
where O: ByteOrder,

ยง

type Output = I64<O>

ยง

impl<O> Add<I128<O>> for i128
where O: ByteOrder,

ยง

type Output = I128<O>

ยง

impl<O> Add<Isize<O>> for isize
where O: ByteOrder,

ยง

type Output = Isize<O>

ยง

impl<O> Add<U16<O>> for u16
where O: ByteOrder,

ยง

type Output = U16<O>

ยง

impl<O> Add<U32<O>> for u32
where O: ByteOrder,

ยง

type Output = U32<O>

ยง

impl<O> Add<U64<O>> for u64
where O: ByteOrder,

ยง

type Output = U64<O>

ยง

impl<O> Add<U128<O>> for u128
where O: ByteOrder,

ยง

type Output = U128<O>

ยง

impl<O> Add<Usize<O>> for usize
where O: ByteOrder,

ยง

type Output = Usize<O>

Sourceยง

impl<S, T> Add for Hsl<S, T>
where T: Add<Output = T>,

Sourceยง

type Output = Hsl<S, T>

Sourceยง

impl<S, T> Add for Hsv<S, T>
where T: Add<Output = T>,

Sourceยง

type Output = Hsv<S, T>

Sourceยง

impl<S, T> Add for Hwb<S, T>
where T: Add<Output = T>,

Sourceยง

type Output = Hwb<S, T>

Sourceยง

impl<S, T> Add for Luma<S, T>
where T: Add<Output = T>,

Sourceยง

impl<S, T> Add for palette::rgb::rgb::Rgb<S, T>
where T: Add<Output = T>,

Sourceยง

type Output = Rgb<S, T>

Sourceยง

impl<S, T> Add<T> for Hsl<S, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Hsl<S, T>

Sourceยง

impl<S, T> Add<T> for Hsv<S, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Hsv<S, T>

Sourceยง

impl<S, T> Add<T> for Hwb<S, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Hwb<S, T>

Sourceยง

impl<S, T> Add<T> for Luma<S, T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<S, T> Add<T> for palette::rgb::rgb::Rgb<S, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Rgb<S, T>

Sourceยง

impl<T> Add for Cam16Jch<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16Jmh<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16Jsh<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16Qch<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16Qmh<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16Qsh<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16UcsJab<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16UcsJmh<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Cam16Hue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for LabHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for LuvHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for OklabHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for RgbHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Okhsl<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Okhsv<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Okhwb<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Oklab<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add for Oklch<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add<T> for Cam16Jch<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16Jmh<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16Jsh<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16Qch<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16Qmh<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16Qsh<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16UcsJab<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16UcsJmh<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Cam16Hue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add<T> for LabHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add<T> for LuvHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add<T> for OklabHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add<T> for RgbHue<T>
where T: Add<Output = T>,

Sourceยง

impl<T> Add<T> for Okhsl<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Okhsv<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Okhwb<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Oklab<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T> Add<T> for Oklch<T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<T, C> Add<T> for Alpha<C, T>
where T: Add + Clone, C: Add<T>,

Sourceยง

type Output = Alpha<<C as Add<T>>::Output, <T as Add>::Output>

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,

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,

Sourceยง

impl<Tz> Add<Duration> for DateTime<Tz>
where Tz: TimeZone,

Add std::time::Duration to DateTime.

As a part of Chronoโ€™s [leap second handling], the addition assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using DateTime<Tz>::checked_add_signed to get an Option instead.

Sourceยง

impl<Tz> Add<Months> for DateTime<Tz>
where Tz: TimeZone,

Add Months to DateTime.

The result will be clamped to valid days in the resulting month, see checked_add_months for details.

ยงPanics

Panics if:

  • The resulting date would be out of range.
  • The local time at the resulting date does not exist or is ambiguous, for example during a daylight saving time transition.

Strongly consider using DateTime<Tz>::checked_add_months to get an Option instead.

Sourceยง

impl<Tz> Add<Days> for DateTime<Tz>
where Tz: TimeZone,

Add Days to NaiveDateTime.

ยงPanics

Panics if:

  • The resulting date would be out of range.
  • The local time at the resulting date does not exist or is ambiguous, for example during a daylight saving time transition.

Strongly consider using DateTime<Tz>::checked_add_days to get an Option instead.

Sourceยง

impl<Tz> Add<FixedOffset> for DateTime<Tz>
where Tz: TimeZone,

Add FixedOffset to the datetime value of DateTime (offset remains unchanged).

ยงPanics

Panics if the resulting date would be out of range.

Sourceยง

impl<Tz> Add<TimeDelta> for chrono::date::Date<Tz>
where Tz: TimeZone,

Sourceยง

impl<Tz> Add<TimeDelta> for DateTime<Tz>
where Tz: TimeZone,

Add TimeDelta to DateTime.

As a part of Chronoโ€™s [leap second handling], the addition assumes that there is no leap second ever, except when the NaiveDateTime itself represents a leap second in which case the assumption becomes that there is exactly a single leap second ever.

ยงPanics

Panics if the resulting date would be out of range. Consider using DateTime<Tz>::checked_add_signed to get an Option instead.

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ยง

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ยง

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

UInt<U, B> + UTerm = 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<Wp, T> Add for Hsluv<Wp, T>
where T: Add<Output = T>,

Sourceยง

impl<Wp, T> Add for Lab<Wp, T>
where T: Add<Output = T>,

Sourceยง

type Output = Lab<Wp, T>

Sourceยง

impl<Wp, T> Add for Lch<Wp, T>
where T: Add<Output = T>,

Sourceยง

type Output = Lch<Wp, T>

Sourceยง

impl<Wp, T> Add for Lchuv<Wp, T>
where T: Add<Output = T>,

Sourceยง

impl<Wp, T> Add for Luv<Wp, T>
where T: Add<Output = T>,

Sourceยง

type Output = Luv<Wp, T>

Sourceยง

impl<Wp, T> Add for Xyz<Wp, T>
where T: Add<Output = T>,

Sourceยง

type Output = Xyz<Wp, T>

Sourceยง

impl<Wp, T> Add for Yxy<Wp, T>
where T: Add<Output = T>,

Sourceยง

type Output = Yxy<Wp, T>

Sourceยง

impl<Wp, T> Add<T> for Hsluv<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<Wp, T> Add<T> for Lab<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Lab<Wp, T>

Sourceยง

impl<Wp, T> Add<T> for Lch<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Lch<Wp, T>

Sourceยง

impl<Wp, T> Add<T> for Lchuv<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

impl<Wp, T> Add<T> for Luv<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Luv<Wp, T>

Sourceยง

impl<Wp, T> Add<T> for Xyz<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Xyz<Wp, T>

Sourceยง

impl<Wp, T> Add<T> for Yxy<Wp, T>
where T: Add<Output = T> + Clone,

Sourceยง

type Output = Yxy<Wp, T>

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>

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>

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>