Neg

Trait Neg 

1.0.0 (const: unstable) · 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 (const: unstable) · Source§

impl Neg for &f16

1.0.0 (const: unstable) · Source§

impl Neg for &f32

1.0.0 (const: unstable) · Source§

impl Neg for &f64

1.0.0 (const: unstable) · Source§

impl Neg for &f128

1.0.0 (const: unstable) · Source§

impl Neg for &i8

1.0.0 (const: unstable) · Source§

impl Neg for &i16

1.0.0 (const: unstable) · Source§

impl Neg for &i32

1.0.0 (const: unstable) · Source§

impl Neg for &i64

1.0.0 (const: unstable) · Source§

impl Neg for &i128

1.0.0 (const: unstable) · Source§

impl Neg for &isize

1.71.0 (const: unstable) · Source§

impl Neg for &NonZero<i8>

1.71.0 (const: unstable) · Source§

impl Neg for &NonZero<i16>

1.71.0 (const: unstable) · Source§

impl Neg for &NonZero<i32>

1.71.0 (const: unstable) · Source§

impl Neg for &NonZero<i64>

1.71.0 (const: unstable) · Source§

impl Neg for &NonZero<i128>

1.71.0 (const: unstable) · Source§

impl Neg for &NonZero<isize>

1.74.0 (const: unstable) · Source§

impl Neg for &Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Neg for &Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Neg for &Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Neg for &Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Neg for &Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Neg for &Saturating<isize>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<i8>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<i16>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<i32>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<i64>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<i128>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<isize>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<u8>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<u16>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<u32>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<u64>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<u128>

1.14.0 (const: unstable) · Source§

impl Neg for &Wrapping<usize>

Source§

impl Neg for &BigInt

Source§

impl Neg for &BigNum

Source§

impl Neg for &BigNumRef

Source§

impl Neg for Sign

1.0.0 (const: unstable) · Source§

impl Neg for f16

1.0.0 (const: unstable) · Source§

impl Neg for f32

1.0.0 (const: unstable) · Source§

impl Neg for f64

1.0.0 (const: unstable) · Source§

impl Neg for f128

1.0.0 (const: unstable) · Source§

impl Neg for i8

1.0.0 (const: unstable) · Source§

impl Neg for i16

1.0.0 (const: unstable) · Source§

impl Neg for i32

1.0.0 (const: unstable) · Source§

impl Neg for i64

1.0.0 (const: unstable) · Source§

impl Neg for i128

1.0.0 (const: unstable) · Source§

impl Neg for isize

1.71.0 (const: unstable) · Source§

impl Neg for NonZero<i8>

1.71.0 (const: unstable) · Source§

impl Neg for NonZero<i16>

1.71.0 (const: unstable) · Source§

impl Neg for NonZero<i32>

1.71.0 (const: unstable) · Source§

impl Neg for NonZero<i64>

1.71.0 (const: unstable) · Source§

impl Neg for NonZero<i128>

1.71.0 (const: unstable) · Source§

impl Neg for NonZero<isize>

1.74.0 (const: unstable) · Source§

impl Neg for Saturating<i8>

1.74.0 (const: unstable) · Source§

impl Neg for Saturating<i16>

1.74.0 (const: unstable) · Source§

impl Neg for Saturating<i32>

1.74.0 (const: unstable) · Source§

impl Neg for Saturating<i64>

1.74.0 (const: unstable) · Source§

impl Neg for Saturating<i128>

1.74.0 (const: unstable) · Source§

impl Neg for Saturating<isize>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<i8>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<i16>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<i32>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<i64>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<i128>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<isize>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<u8>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<u16>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<u32>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<u64>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<u128>

1.10.0 (const: unstable) · Source§

impl Neg for Wrapping<usize>

Source§

impl Neg for BigInt

Source§

impl Neg for BigNum

Source§

impl Neg for Timespec

Source§

impl Neg for Duration

Source§

impl Neg for UtcOffset

Source§

impl Neg for ATerm

Source§

impl Neg for Z0

-Z0 = Z0

Source§

impl<E> Neg for &snarkvm_circuit_types_field::Field<E>
where E: Environment,

Source§

impl<E> Neg for &snarkvm_circuit_types_group::Group<E>
where E: Environment,

Source§

impl<E> Neg for snarkvm_debug::prelude::Field<E>
where E: Environment,

Source§

impl<E> Neg for snarkvm_debug::prelude::Group<E>
where E: Environment,

Source§

impl<E> Neg for Scalar<E>
where E: Environment,

Source§

impl<E> Neg for snarkvm_circuit_types_field::Field<E>
where E: Environment,

Source§

impl<E> Neg for snarkvm_circuit_types_group::Group<E>
where E: Environment,

Source§

impl<E, I> Neg for &snarkvm_circuit_types_integers::Integer<E, I>
where E: Environment, I: IntegerType,

Source§

type Output = Integer<E, I>

Source§

impl<E, I> Neg for snarkvm_circuit_types_integers::Integer<E, I>
where E: Environment, I: IntegerType,

Source§

type Output = Integer<E, I>

Source§

impl<E, I> Neg for snarkvm_debug::prelude::integers::Integer<E, I>
where E: Environment, I: IntegerType,

Source§

type Output = Integer<E, I>

Source§

impl<F> Neg for &snarkvm_circuit_environment::helpers::linear_combination::LinearCombination<F>
where F: PrimeField,

Source§

impl<F> Neg for ConstraintVariable<F>
where F: Field,

Source§

impl<F> Neg for DensePolynomial<F>
where F: Field,

Source§

impl<F> Neg for snarkvm_algorithms::r1cs::linear_combination::LinearCombination<F>
where F: Field,

Source§

impl<F> Neg for snarkvm_circuit_environment::helpers::linear_combination::LinearCombination<F>
where F: PrimeField,

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

impl<P> Neg for snarkvm_curves::templates::short_weierstrass_jacobian::affine::Affine<P>

Source§

impl<P> Neg for snarkvm_curves::templates::short_weierstrass_jacobian::projective::Projective<P>

Source§

impl<P> Neg for snarkvm_curves::templates::twisted_edwards_extended::affine::Affine<P>

Source§

impl<P> Neg for snarkvm_curves::templates::twisted_edwards_extended::projective::Projective<P>

Source§

impl<P> Neg for Fp2<P>
where P: Fp2Parameters,

Source§

impl<P> Neg for Fp6<P>
where P: Fp6Parameters,

Source§

impl<P> Neg for Fp12<P>
where P: Fp12Parameters,

Source§

impl<P> Neg for Fp256<P>
where P: Fp256Parameters,

Source§

impl<P> Neg for Fp384<P>
where P: Fp384Parameters,

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