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 &core::num::wrapping::Wrapping<i8>

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

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

1.14.0 · Source§

impl Neg for &core::num::wrapping::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

Source§

impl Neg for crypto_bigint::wrapping::Wrapping<Limb>

Source§

impl Neg for ATerm

Source§

impl Neg for Z0

-Z0 = Z0

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 core::num::wrapping::Wrapping<i8>

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

1.10.0 · Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

type Output = Residue<MOD, LIMBS>

Source§

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

Source§

type Output = Residue<MOD, LIMBS>

Source§

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

-NInt = PInt

Source§

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

-PInt = NInt

Source§

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

Source§

type Output = TArr<<V as Neg>::Output, <A as Neg>::Output>

Source§

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

Source§

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

Source§

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

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 Sign

impl<const BITS: usize, const LIMBS: usize> Neg for Signed<BITS, LIMBS>

impl<P: FpConfig<N>, const N: usize> Neg for Fp<P, N>

impl Neg for G1Affine

impl Neg for G1Projective

impl Neg for G2Affine

impl Neg for G2Projective

impl Neg for Gt

impl Neg for Scalar

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G1Projective

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a G2Projective

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a Scalar

impl<F: Field> Neg for &Assigned<F>

impl<F: Field> Neg for Assigned<F>

impl<F: Field> Neg for Expression<F>

impl<V: Neg> Neg for Value<V>

impl<F: Field> Neg for Assigned<F>

impl<F: Field> Neg for Expression<F>

impl Neg for Fq

impl Neg for Fr

impl Neg for G1

impl Neg for G1Affine

impl Neg for G2

impl Neg for G2Affine

impl Neg for Gt

impl Neg for Fq

impl Neg for Fr

impl Neg for G1

impl Neg for G1Affine

impl Neg for G2

impl Neg for G2Affine

impl Neg for Gt

impl Neg for QuadExtField<Fp>

impl Neg for G1

impl Neg for G1Affine

impl Neg for Fp

impl Neg for Fq

impl Neg for Pallas

impl Neg for PallasAffine

impl Neg for Vesta

impl Neg for VestaAffine

impl Neg for Eris

impl Neg for ErisAffine

impl Neg for Fp

impl Neg for Fq

impl Neg for G1

impl Neg for G1Affine

impl Neg for G2

impl Neg for G2Affine

impl Neg for Gt

impl Neg for Fp

impl Neg for Fq

impl Neg for Secp256k1

impl Neg for Fp

impl Neg for Fq

impl Neg for Secp256r1

impl Neg for Secq256k1

impl Neg for Fq12

impl Neg for Fq2

impl Neg for Fq6

impl Neg for Fq12

impl Neg for Fq2

impl Neg for Fq6

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Fr

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G2

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Fr

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G2

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a CubicExtField<QuadExtField<Fp>>

impl<'a> Neg for &'a QuadExtField<Fp>

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Pallas

impl<'a> Neg for &'a PallasAffine

impl<'a> Neg for &'a Vesta

impl<'a> Neg for &'a VestaAffine

impl<'a> Neg for &'a Eris

impl<'a> Neg for &'a ErisAffine

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G2

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Secp256k1

impl<'a> Neg for &'a Secp256k1Affine

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Secp256r1

impl<'a> Neg for &'a Secp256r1Affine

impl<'a> Neg for &'a Secq256k1

impl<'a> Neg for &'a Secq256k1Affine

impl<'a> Neg for &'a Fq12

impl<'a> Neg for &'a Fq2

impl<'a> Neg for &'a Fq6

impl<'a> Neg for &'a Fq12

impl<'a> Neg for &'a Fq2

impl<'a> Neg for &'a Fq6

impl<const L: usize> Neg for &LInt<L>

impl<const L: usize> Neg for LInt<L>

impl Neg for Fp

impl Neg for Fp12

impl Neg for Fp2

impl Neg for Fp6

impl Neg for Scalar

impl Neg for G1Projective

impl Neg for G1Affine

impl Neg for G2Projective

impl Neg for G2Affine

impl Neg for Gt

impl Neg for Fq

impl Neg for Fq12

impl Neg for Fq2

impl Neg for Fq6

impl Neg for Fr

impl Neg for G1

impl Neg for G1Affine

impl Neg for G2

impl Neg for G2Affine

impl Neg for Gt

impl Neg for Ed25519

impl Neg for Fq

impl Neg for Fr

impl Neg for G1

impl Neg for G1Affine

impl Neg for Eris

impl Neg for ErisAffine

impl Neg for Fp

impl Neg for Fq

impl Neg for G1

impl Neg for G1Affine

impl Neg for G2

impl Neg for G2Affine

impl Neg for Gt

impl Neg for Fp

impl Neg for Fq

impl Neg for Secp256k1

impl Neg for Fp

impl Neg for Fq

impl Neg for Secp256r1

impl Neg for Secq256k1

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fp12

impl<'a> Neg for &'a Fp2

impl<'a> Neg for &'a Fp6

impl<'a> Neg for &'a Scalar

impl<'a> Neg for &'a G1Projective

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G2Projective

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Fq12

impl<'a> Neg for &'a Fq2

impl<'a> Neg for &'a Fq6

impl<'a> Neg for &'a Fr

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G2

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a Ed25519

impl<'a> Neg for &'a Ed25519Affine

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Fr

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a Eris

impl<'a> Neg for &'a ErisAffine

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a G1

impl<'a> Neg for &'a G1Affine

impl<'a> Neg for &'a G2

impl<'a> Neg for &'a G2Affine

impl<'a> Neg for &'a Gt

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Secp256k1

impl<'a> Neg for &'a Secp256k1Affine

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<'a> Neg for &'a Secp256r1

impl<'a> Neg for &'a Secp256r1Affine

impl<'a> Neg for &'a Secq256k1

impl<'a> Neg for &'a Secq256k1Affine

impl<const L: usize> Neg for &LInt<L>

impl<const L: usize> Neg for LInt<L>

impl Neg for &SubgroupPoint

impl Neg for AffinePoint

impl Neg for Fr

impl<'a> Neg for &'a Fr

impl Neg for &Scalar

impl Neg for AffinePoint

impl Neg for Scalar

impl<'a> Neg for &'a ProjectivePoint

impl Neg for &Rgb

impl Neg for Rgb

impl Neg for &BigInt

impl Neg for Sign

impl Neg for BigInt

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

impl Neg for P256Coord

impl Neg for P256Point

impl Neg for P256Scalar

impl<'a> Neg for &'a Secp256k1Coord

impl<'a> Neg for &'a Secp256k1Scalar

impl<'a> Neg for &'a P256Coord

impl<'a> Neg for &'a P256Scalar

impl<F> Neg for AffinePoint<F>
where F: Neg<Output = F>,

impl<F: Field> Neg for SymbolicFelt<F>

impl<F: Field> Neg for Felt<F>

impl<F: Field, EF: ExtensionField<F>> Neg for SymbolicExt<F, EF>

impl<F: Field, EF: ExtensionField<F>> Neg for Ext<F, EF>

impl<N: Field> Neg for SymbolicVar<N>

impl<N: Field> Neg for Var<N>

impl Neg for &Bls12_381Fp2

impl Neg for &G2Affine

impl Neg for &Bn254Fp2

impl Neg for &Bn254G1Affine

impl Neg for &G2Affine

impl Neg for Bls12_381Fp

impl Neg for Bls12_381Fp2

impl Neg for G2Affine

impl Neg for Bn254Fp

impl Neg for Bn254Fp2

impl Neg for Bn254Scalar

impl Neg for G2Affine

impl Neg for Fp12

impl Neg for Fp12

impl<'a> Neg for &'a Bls12_381Fp

impl<'a> Neg for &'a Bls12_381Scalar

impl<'a> Neg for &'a Bn254Fp

impl<'a> Neg for &'a Bn254Scalar

impl<F: Field> Neg for SymbolicExpression<F>

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 Bn254Fr

impl<F: Field, const N: usize> Neg for FieldArray<F, N>

impl<FA, const D: usize> Neg for BinomialExtensionField<FA, D>
where FA: FieldAlgebra, FA::F: BinomiallyExtendable<D>,

impl Neg for Goldilocks

impl<FP: FieldParameters> Neg for MontyField31<FP>

impl<F: Field> Neg for SymbolicExpression<F>

impl Neg for Ep

impl Neg for EpAffine

impl Neg for Eq

impl Neg for EqAffine

impl Neg for Fp

impl Neg for Fq

impl<'a> Neg for &'a Ep

impl<'a> Neg for &'a EpAffine

impl<'a> Neg for &'a Eq

impl<'a> Neg for &'a EqAffine

impl<'a> Neg for &'a Fp

impl<'a> Neg for &'a Fq

impl<const BITS: usize, const LIMBS: usize> Neg for &Uint<BITS, LIMBS>

impl<const BITS: usize, const LIMBS: usize> Neg for Uint<BITS, LIMBS>

impl Neg for Scalar

impl<'a, C, L> Neg for Msm<'a, C, L>
where C: CurveAffine, L: Loader<C>,

impl<C: CurveAffine, EccChip: EccInstructions<C>> Neg for Scalar<C, EccChip>

impl Neg for Fq

impl Neg for Fq2

impl Neg for Fr

impl Neg for G1

impl Neg for G2

impl Neg for Duration

impl Neg for UtcOffset

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>