tracing_core::stdlib::ops

Trait Neg

1.0.0 · Source
pub trait Neg {
    type Output;

    // Required method
    fn neg(self) -> Self::Output;
}
Expand description

The unary negation operator -.

§Examples

An implementation of Neg for Sign, which allows the use of - to negate its value.

use std::ops::Neg;

#[derive(Debug, PartialEq)]
enum Sign {
    Negative,
    Zero,
    Positive,
}

impl Neg for Sign {
    type Output = Self;

    fn neg(self) -> Self::Output {
        match self {
            Sign::Negative => Sign::Positive,
            Sign::Zero => Sign::Zero,
            Sign::Positive => Sign::Negative,
        }
    }
}

// A negative positive is a negative.
assert_eq!(-Sign::Positive, Sign::Negative);
// A double negative is a positive.
assert_eq!(-Sign::Negative, Sign::Positive);
// Zero is its own negation.
assert_eq!(-Sign::Zero, Sign::Zero);

Required Associated Types§

1.0.0 · Source

type Output

The resulting type after applying the - operator.

Required Methods§

1.0.0 · Source

fn neg(self) -> Self::Output

Performs the unary - operation.

§Example
let x: i32 = 12;
assert_eq!(-x, -12);

Implementors§

1.0.0 · Source§

impl Neg for &f16

1.0.0 · Source§

impl Neg for &f32

1.0.0 · Source§

impl Neg for &f64

1.0.0 · Source§

impl Neg for &f128

1.0.0 · Source§

impl Neg for &i8

1.0.0 · Source§

impl Neg for &i16

1.0.0 · Source§

impl Neg for &i32

1.0.0 · Source§

impl Neg for &i64

1.0.0 · Source§

impl Neg for &i128

1.0.0 · Source§

impl Neg for &isize

1.71.0 · Source§

impl Neg for &NonZero<i8>

1.71.0 · Source§

impl Neg for &NonZero<i16>

1.71.0 · Source§

impl Neg for &NonZero<i32>

1.71.0 · Source§

impl Neg for &NonZero<i64>

1.71.0 · Source§

impl Neg for &NonZero<i128>

1.71.0 · Source§

impl Neg for &NonZero<isize>

1.74.0 · Source§

impl Neg for &Saturating<i8>

1.74.0 · Source§

impl Neg for &Saturating<i16>

1.74.0 · Source§

impl Neg for &Saturating<i32>

1.74.0 · Source§

impl Neg for &Saturating<i64>

1.74.0 · Source§

impl Neg for &Saturating<i128>

1.74.0 · Source§

impl Neg for &Saturating<isize>

1.14.0 · Source§

impl Neg for &Wrapping<i8>

1.14.0 · Source§

impl Neg for &Wrapping<i16>

1.14.0 · Source§

impl Neg for &Wrapping<i32>

1.14.0 · Source§

impl Neg for &Wrapping<i64>

1.14.0 · Source§

impl Neg for &Wrapping<i128>

1.14.0 · Source§

impl Neg for &Wrapping<isize>

1.14.0 · Source§

impl Neg for &Wrapping<u8>

1.14.0 · Source§

impl Neg for &Wrapping<u16>

1.14.0 · Source§

impl Neg for &Wrapping<u32>

1.14.0 · Source§

impl Neg for &Wrapping<u64>

1.14.0 · Source§

impl Neg for &Wrapping<u128>

1.14.0 · Source§

impl Neg for &Wrapping<usize>

1.0.0 · Source§

impl Neg for f16

1.0.0 · Source§

impl Neg for f32

1.0.0 · Source§

impl Neg for f64

1.0.0 · Source§

impl Neg for f128

1.0.0 · Source§

impl Neg for i8

1.0.0 · Source§

impl Neg for i16

1.0.0 · Source§

impl Neg for i32

1.0.0 · Source§

impl Neg for i64

1.0.0 · Source§

impl Neg for i128

1.0.0 · Source§

impl Neg for isize

1.71.0 · Source§

impl Neg for NonZero<i8>

1.71.0 · Source§

impl Neg for NonZero<i16>

1.71.0 · Source§

impl Neg for NonZero<i32>

1.71.0 · Source§

impl Neg for NonZero<i64>

1.71.0 · Source§

impl Neg for NonZero<i128>

1.71.0 · Source§

impl Neg for NonZero<isize>

1.74.0 · Source§

impl Neg for Saturating<i8>

1.74.0 · Source§

impl Neg for Saturating<i16>

1.74.0 · Source§

impl Neg for Saturating<i32>

1.74.0 · Source§

impl Neg for Saturating<i64>

1.74.0 · Source§

impl Neg for Saturating<i128>

1.74.0 · Source§

impl Neg for Saturating<isize>

1.10.0 · Source§

impl Neg for Wrapping<i8>

1.10.0 · Source§

impl Neg for Wrapping<i16>

1.10.0 · Source§

impl Neg for Wrapping<i32>

1.10.0 · Source§

impl Neg for Wrapping<i64>

1.10.0 · Source§

impl Neg for Wrapping<i128>

1.10.0 · Source§

impl Neg for Wrapping<isize>

1.10.0 · Source§

impl Neg for Wrapping<u8>

1.10.0 · Source§

impl Neg for Wrapping<u16>

1.10.0 · Source§

impl Neg for Wrapping<u32>

1.10.0 · Source§

impl Neg for Wrapping<u64>

1.10.0 · Source§

impl Neg for Wrapping<u128>

1.10.0 · Source§

impl Neg for Wrapping<usize>

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

impl Neg for Au

impl Neg for TimeDelta

impl Neg for Vec2

impl<T, U> Neg for SideOffsets2D<T, U>
where T: Neg<Output = T>,

impl<T: Neg<Output = T>> Neg for Angle<T>

impl<T: Neg, U> Neg for Point2D<T, U>

impl<T: Neg, U> Neg for Point3D<T, U>

impl<T: Neg, U> Neg for Size2D<T, U>

impl<T: Neg, U> Neg for Size3D<T, U>

impl<T: Neg, U> Neg for Vector2D<T, U>

impl<T: Neg, U> Neg for Vector3D<T, U>

impl<U, T: Neg> Neg for Length<T, U>

impl<T> Neg for Vec2<T>
where T: Neg<Output = T>,

impl Neg for ByteIndex

impl Neg for &Fraction

impl Neg for Fraction

impl<T> Neg for Signed<T>

impl Neg for &bf16

impl Neg for &f16

impl Neg for bf16

impl Neg for f16

impl Neg for Span

impl Neg for Offset

impl Neg for Constant

impl<const MIN: i128, const MAX: i128> Neg for ri128<MIN, MAX>

impl<const MIN: i128, const MAX: i128> Neg for ri16<MIN, MAX>

impl<const MIN: i128, const MAX: i128> Neg for ri32<MIN, MAX>

impl<const MIN: i128, const MAX: i128> Neg for ri64<MIN, MAX>

impl<const MIN: i128, const MAX: i128> Neg for ri8<MIN, MAX>

impl<T: Neg<Output = T> + Copy> Neg for LogicalSides<T>

impl<T: Neg<Output = T> + Copy> Neg for LogicalVec2<T>

impl Neg for TimeSpec

impl Neg for TimeVal

impl<'a, T: Clone + Num + Neg<Output = T>> Neg for &'a Complex<T>

impl<T: Clone + Num + Neg<Output = T>> Neg for Complex<T>

impl<'a, T> Neg for &'a Ratio<T>
where T: Clone + Integer + Neg<Output = T>,

impl<T> Neg for Ratio<T>
where T: Clone + Integer + Neg<Output = T>,

impl<'a, T> Neg for &'a OrderedFloat<T>
where &'a T: Neg,

impl<T: Neg> Neg for OrderedFloat<T>

impl<T: FloatCore> Neg for &NotNan<T>

impl<T: FloatCore> Neg for NotNan<T>

impl Neg for Matrix2x2F

impl Neg for Vector2F

impl Neg for Vector2I

impl Neg for Vector3F

impl Neg for Vector4F

impl Neg for F32x2

impl Neg for F32x4

impl Neg for I32x2

impl Neg for I32x4

impl Neg for Duration

impl Neg for UtcOffset

impl Neg for f32x4

impl Neg for f32x8

impl Neg for Point

impl Neg for ATerm

impl Neg for Z0

impl<U: Unsigned + NonZero> Neg for NInt<U>

impl<U: Unsigned + NonZero> Neg for PInt<U>

impl<V, A> Neg for TArr<V, A>
where V: Neg, A: Neg,

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

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

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

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

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

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