Trait no_std_compat::ops::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

§

type Output = <f16 as Neg>::Output

1.0.0 · source§

impl Neg for &f32

§

type Output = <f32 as Neg>::Output

1.0.0 · source§

impl Neg for &f64

§

type Output = <f64 as Neg>::Output

1.0.0 · source§

impl Neg for &f128

§

type Output = <f128 as Neg>::Output

1.0.0 · source§

impl Neg for &i8

§

type Output = <i8 as Neg>::Output

1.0.0 · source§

impl Neg for &i16

§

type Output = <i16 as Neg>::Output

1.0.0 · source§

impl Neg for &i32

§

type Output = <i32 as Neg>::Output

1.0.0 · source§

impl Neg for &i64

§

type Output = <i64 as Neg>::Output

1.0.0 · source§

impl Neg for &i128

§

type Output = <i128 as Neg>::Output

1.0.0 · source§

impl Neg for &isize

§

type Output = <isize as Neg>::Output

1.71.0 · source§

impl Neg for &NonZero<i8>

§

type Output = <NonZero<i8> as Neg>::Output

1.71.0 · source§

impl Neg for &NonZero<i16>

§

type Output = <NonZero<i16> as Neg>::Output

1.71.0 · source§

impl Neg for &NonZero<i32>

§

type Output = <NonZero<i32> as Neg>::Output

1.71.0 · source§

impl Neg for &NonZero<i64>

§

type Output = <NonZero<i64> as Neg>::Output

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>

§

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

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>

§

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

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

§

type Output = f16

1.0.0 · source§

impl Neg for f32

§

type Output = f32

1.0.0 · source§

impl Neg for f64

§

type Output = f64

1.0.0 · source§

impl Neg for f128

§

type Output = f128

1.0.0 · source§

impl Neg for i8

§

type Output = i8

1.0.0 · source§

impl Neg for i16

§

type Output = i16

1.0.0 · source§

impl Neg for i32

§

type Output = i32

1.0.0 · source§

impl Neg for i64

§

type Output = i64

1.0.0 · source§

impl Neg for i128

§

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

§

type Output = Simd<f32, N>

source§

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

§

type Output = Simd<f64, N>

source§

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

§

type Output = Simd<i8, N>

source§

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

§

type Output = Simd<i16, N>

source§

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

§

type Output = Simd<i32, N>

source§

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

§

type Output = Simd<i64, N>

source§

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

§

type Output = Simd<isize, N>

impl Neg for TimeDelta

impl Neg for Ieee32

impl Neg for Ieee64

impl Neg for Wrapping<Limb>

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

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

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

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

impl<const LIMBS: usize> Neg for Wrapping<Uint<LIMBS>>

impl Neg for EdwardsPoint

impl Neg for Scalar

impl<'a> Neg for &'a EdwardsPoint

impl<'a> Neg for &'a RistrettoPoint

impl<'a> Neg for &'a Scalar

impl<C> Neg for &ScalarPrimitive<C>
where C: Curve,

impl<C> Neg for NonZeroScalar<C>
where C: CurveArithmetic,

impl<C> Neg for ScalarPrimitive<C>
where C: Curve,

impl Neg for &BigInt

impl Neg for &Number

impl Neg for BigInt

impl Neg for Number

impl Neg for &Scalar

impl Neg for AffinePoint

impl Neg for Scalar

impl<'a> Neg for &'a ProjectivePoint

impl Neg for Scalar

impl<'a> Neg for &'a Scalar

impl Neg for TimeSpec

impl Neg for TimeVal

impl Neg for &Rgb

impl Neg for Rgb

impl Neg for &BigInt

impl Neg for Sign

impl Neg for BigInt

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

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

impl Neg for FixedI128

impl Neg for FixedI64

impl Neg for FixedU128

impl Neg for FixedU64

impl Neg for Duration

impl Neg for UtcOffset

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 Neg for &JsValue

impl Neg for JsValue

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>