Trait oberon::inner_types::elliptic_curve::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§

source

type Output

The resulting type after applying the - operator.

Required Methods§

source

fn neg(self) -> Self::Output

Performs the unary - operation.

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

Implementors§

source§

impl Neg for &f32

§

type Output = <f32 as Neg>::Output

source§

impl Neg for &f64

§

type Output = <f64 as Neg>::Output

source§

impl Neg for &i8

§

type Output = <i8 as Neg>::Output

source§

impl Neg for &i16

§

type Output = <i16 as Neg>::Output

source§

impl Neg for &i32

§

type Output = <i32 as Neg>::Output

source§

impl Neg for &i64

§

type Output = <i64 as Neg>::Output

source§

impl Neg for &i128

§

type Output = <i128 as Neg>::Output

source§

impl Neg for &isize

§

type Output = <isize as Neg>::Output

1.71.0 · source§

impl Neg for &NonZeroI8

1.71.0 · source§

impl Neg for &NonZeroI16

1.71.0 · source§

impl Neg for &NonZeroI32

1.71.0 · source§

impl Neg for &NonZeroI64

1.71.0 · source§

impl Neg for &NonZeroI128

1.71.0 · source§

impl Neg for &NonZeroIsize

source§

impl Neg for &Saturating<i8>

source§

impl Neg for &Saturating<i16>

source§

impl Neg for &Saturating<i32>

source§

impl Neg for &Saturating<i64>

source§

impl Neg for &Saturating<i128>

source§

impl Neg for &Saturating<isize>

1.14.0 · source§

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

§

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

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>

§

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

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>

source§

impl Neg for f32

§

type Output = f32

source§

impl Neg for f64

§

type Output = f64

source§

impl Neg for i8

§

type Output = i8

source§

impl Neg for i16

§

type Output = i16

source§

impl Neg for i32

§

type Output = i32

source§

impl Neg for i64

§

type Output = i64

source§

impl Neg for i128

§

type Output = i128

source§

impl Neg for isize

source§

impl Neg for G1Affine

source§

impl Neg for G1Projective

source§

impl Neg for G2Affine

source§

impl Neg for G2Projective

source§

impl Neg for Gt

§

type Output = Gt

source§

impl Neg for Scalar

source§

impl Neg for ATerm

source§

impl Neg for Z0

-Z0 = Z0

§

type Output = Z0

1.71.0 · source§

impl Neg for NonZeroI8

1.71.0 · source§

impl Neg for NonZeroI16

1.71.0 · source§

impl Neg for NonZeroI32

1.71.0 · source§

impl Neg for NonZeroI64

1.71.0 · source§

impl Neg for NonZeroI128

1.71.0 · source§

impl Neg for NonZeroIsize

source§

impl Neg for Saturating<i8>

source§

impl Neg for Saturating<i16>

source§

impl Neg for Saturating<i32>

source§

impl Neg for Saturating<i64>

source§

impl Neg for Saturating<i128>

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<'a> Neg for &'a G1Affine

source§

impl<'a> Neg for &'a G1Projective

source§

impl<'a> Neg for &'a G2Affine

source§

impl<'a> Neg for &'a G2Projective

source§

impl<'a> Neg for &'a Gt

§

type Output = Gt

source§

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<MOD, const LIMBS: usize> Neg for &Residue<MOD, LIMBS>where MOD: ResidueParams<LIMBS>,

§

type Output = Residue<MOD, LIMBS>

§

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

§

type Output = Residue<MOD, LIMBS>

source§

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

-NInt = PInt

§

type Output = PInt<U>

source§

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

-PInt = NInt

§

type Output = NInt<U>

source§

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

§

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

source§

impl<const LANES: usize> Neg for Simd<f32, LANES>where f32: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<f32, LANES>

source§

impl<const LANES: usize> Neg for Simd<f64, LANES>where f64: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<f64, LANES>

source§

impl<const LANES: usize> Neg for Simd<i8, LANES>where i8: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<i8, LANES>

source§

impl<const LANES: usize> Neg for Simd<i16, LANES>where i16: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<i16, LANES>

source§

impl<const LANES: usize> Neg for Simd<i32, LANES>where i32: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<i32, LANES>

source§

impl<const LANES: usize> Neg for Simd<i64, LANES>where i64: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<i64, LANES>

source§

impl<const LANES: usize> Neg for Simd<isize, LANES>where isize: SimdElement, LaneCount<LANES>: SupportedLaneCount,

§

type Output = Simd<isize, LANES>

§

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

§

type Output = DynResidue<LIMBS>

§

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

§

type Output = DynResidue<LIMBS>

§

impl<const LIMBS: usize> Neg for oberon::inner_types::elliptic_curve::bigint::Wrapping<Uint<LIMBS>>

§

type Output = Wrapping<Uint<LIMBS>>