WrappingNeg in num_traits::ops::wrapping - Rust
Description: Performs a negation that does not panic.
Keywords: rust, rustlang, rust-lang, WrappingNeg

# Trait num_traits::ops::wrapping::WrappingNeg

source ·

    pub trait WrappingNeg: Sized {
        fn wrapping_neg(&self) -> Self;
    }

Expand description

Performs a negation that does not panic.

## Required Methods§

source

#### fn wrapping_neg(&self) -> Self

Wrapping (modular) negation. Computes `-self`, wrapping around at the boundary of the type.

Since unsigned types do not have negative equivalents all applications of this function will wrap (except for `-0`). For values smaller than the corresponding signed type’s maximum the result is the same as casting the corresponding signed value. Any larger values are equivalent to `MAX + 1 - (val - MAX - 1)` where `MAX` is the corresponding signed type’s maximum.

    use num_traits::WrappingNeg;

    assert_eq!(100i8.wrapping_neg(), -100);
    assert_eq!((-100i8).wrapping_neg(), 100);
    assert_eq!((-128i8).wrapping_neg(), -128); // wrapped!

## Implementations on Foreign Types§

source§

### impl WrappingNeg for u8

source§

#### fn wrapping_neg(&self) -> u8

source§

### impl WrappingNeg for u16

source§

#### fn wrapping_neg(&self) -> u16

source§

### impl WrappingNeg for u32

source§

#### fn wrapping_neg(&self) -> u32

source§

### impl WrappingNeg for u64

source§

#### fn wrapping_neg(&self) -> u64

source§

### impl WrappingNeg for usize

source§

#### fn wrapping_neg(&self) -> usize

source§

### impl WrappingNeg for u128

source§

#### fn wrapping_neg(&self) -> u128

source§

### impl WrappingNeg for i8

source§

#### fn wrapping_neg(&self) -> i8

source§

### impl WrappingNeg for i16

source§

#### fn wrapping_neg(&self) -> i16

source§

### impl WrappingNeg for i32

source§

#### fn wrapping_neg(&self) -> i32

source§

### impl WrappingNeg for i64

source§

#### fn wrapping_neg(&self) -> i64

source§

### impl WrappingNeg for isize

source§

#### fn wrapping_neg(&self) -> isize

source§

### impl WrappingNeg for i128

source§

#### fn wrapping_neg(&self) -> i128

source§

### impl<T: WrappingNeg> WrappingNeg for Wrapping<T>where
Wrapping<T>: Neg<Output = Wrapping<T>>,

source§

#### fn wrapping_neg(&self) -> Self

## Implementors§