std::ops::Neg
Trait std::ops::Neg
#[lang = "neg"] pub trait Neg { type Output; fn neg(self) -> Self::Output; }
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 = Sign; fn neg(self) -> Sign { 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);
Associated Types
type Output
The resulting type after applying the -
operator
Required Methods
Implementors
impl Neg for Wrapping<usize>
impl Neg for Wrapping<u8>
impl Neg for Wrapping<u16>
impl Neg for Wrapping<u32>
impl Neg for Wrapping<u64>
impl Neg for Wrapping<u128>
impl Neg for Wrapping<isize>
impl Neg for Wrapping<i8>
impl Neg for Wrapping<i16>
impl Neg for Wrapping<i32>
impl Neg for Wrapping<i64>
impl Neg for Wrapping<i128>
impl<'a> Neg for &'a Wrapping<usize>
impl<'a> Neg for &'a Wrapping<u8>
impl<'a> Neg for &'a Wrapping<u16>
impl<'a> Neg for &'a Wrapping<u32>
impl<'a> Neg for &'a Wrapping<u64>
impl<'a> Neg for &'a Wrapping<u128>
impl<'a> Neg for &'a Wrapping<isize>
impl<'a> Neg for &'a Wrapping<i8>
impl<'a> Neg for &'a Wrapping<i16>
impl<'a> Neg for &'a Wrapping<i32>
impl<'a> Neg for &'a Wrapping<i64>
impl<'a> Neg for &'a Wrapping<i128>
impl Neg for isize
impl Neg for i8
impl Neg for i16
impl Neg for i32
impl Neg for i64
impl Neg for i128
impl Neg for f32
impl Neg for f64
impl<'a> Neg for &'a isize
impl<'a> Neg for &'a i8
impl<'a> Neg for &'a i16
impl<'a> Neg for &'a i32
impl<'a> Neg for &'a i64
impl<'a> Neg for &'a i128
impl<'a> Neg for &'a f32
impl<'a> Neg for &'a f64
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/ops/trait.Neg.html