cairo_vm::with_std::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

Source§

impl Neg for &Felt

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 &cairo_vm::with_std::num::Wrapping<i8>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<i16>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<i32>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<i64>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<i128>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<isize>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<u8>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<u16>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<u32>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<u64>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<u128>

1.14.0 · Source§

impl Neg for &cairo_vm::with_std::num::Wrapping<usize>

Source§

impl Neg for &BigInt

Source§

impl Neg for &starknet_curve::ec_point::AffinePoint

Source§

impl Neg for &starknet_types_core::curve::affine_point::AffinePoint

Source§

impl Neg for &ProjectivePoint

Source§

impl Neg for Sign

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 Felt

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 cairo_vm::with_std::num::Wrapping<i8>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<i16>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<i32>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<i64>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<i128>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<isize>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<u8>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<u16>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<u32>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<u64>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<u128>

1.10.0 · Source§

impl Neg for cairo_vm::with_std::num::Wrapping<usize>

Source§

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

Source§

impl Neg for BigInt

Source§

impl Neg for Decimal

Source§

impl Neg for starknet_ff::FieldElement

Source§

impl Neg for ATerm

Source§

impl Neg for Z0

-Z0 = Z0

Source§

impl<'a> Neg for &'a Decimal

Source§

impl<F> Neg for &lambdaworks_math::field::element::FieldElement<F>
where F: IsField,

Negation operator overloading for field elements*/

Source§

impl<F> Neg for &Polynomial<FieldElement<F>>
where F: IsField,

Source§

impl<F> Neg for lambdaworks_math::field::element::FieldElement<F>
where F: IsField,

Source§

impl<F> Neg for Polynomial<FieldElement<F>>
where F: IsField,

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<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<P> Neg for CubicExtField<P>
where P: CubicExtConfig,

Source§

impl<P> Neg for QuadExtField<P>
where P: QuadExtConfig,

Source§

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

Source§

type Output = Fp<P, N>

Source§

impl<T, R> Neg for &ReducedInt<T, R>
where T: PartialEq + Clone, R: Reducer<T> + Clone,

Source§

impl<T, R> Neg for ReducedInt<T, R>
where T: PartialEq, R: Reducer<T>,

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>