num_traits::ops::checked

Trait CheckedNeg

Source
pub trait CheckedNeg: Sized {
    // Required method
    fn checked_neg(&self) -> Option<Self>;
}
Expand description

Performs negation that returns None if the result can’t be represented.

Required Methods§

Source

fn checked_neg(&self) -> Option<Self>

Negates a number, returning None for results that can’t be represented, like signed MIN values that can’t be positive, or non-zero unsigned values that can’t be negative.

§Examples
use num_traits::CheckedNeg;
use std::i32::MIN;

assert_eq!(CheckedNeg::checked_neg(&1_i32), Some(-1));
assert_eq!(CheckedNeg::checked_neg(&-1_i32), Some(1));
assert_eq!(CheckedNeg::checked_neg(&MIN), None);

assert_eq!(CheckedNeg::checked_neg(&0_u32), Some(0));
assert_eq!(CheckedNeg::checked_neg(&1_u32), None);

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl CheckedNeg for i8

Source§

fn checked_neg(&self) -> Option<i8>

Source§

impl CheckedNeg for i16

Source§

fn checked_neg(&self) -> Option<i16>

Source§

impl CheckedNeg for i32

Source§

fn checked_neg(&self) -> Option<i32>

Source§

impl CheckedNeg for i64

Source§

fn checked_neg(&self) -> Option<i64>

Source§

impl CheckedNeg for i128

Source§

fn checked_neg(&self) -> Option<i128>

Source§

impl CheckedNeg for isize

Source§

fn checked_neg(&self) -> Option<isize>

Source§

impl CheckedNeg for u8

Source§

fn checked_neg(&self) -> Option<u8>

Source§

impl CheckedNeg for u16

Source§

fn checked_neg(&self) -> Option<u16>

Source§

impl CheckedNeg for u32

Source§

fn checked_neg(&self) -> Option<u32>

Source§

impl CheckedNeg for u64

Source§

fn checked_neg(&self) -> Option<u64>

Source§

impl CheckedNeg for u128

Source§

fn checked_neg(&self) -> Option<u128>

Source§

impl CheckedNeg for usize

Source§

fn checked_neg(&self) -> Option<usize>

Implementors§