# [−][src]Trait num_traits::sign::Signed

    pub trait Signed: Sized + Num + Neg<Output = Self> {
        fn abs(&self) -> Self;
        fn abs_sub(&self, other: &Self) -> Self;
        fn signum(&self) -> Self;
        fn is_positive(&self) -> bool;
        fn is_negative(&self) -> bool;
    }

Useful functions for signed numbers (i.e. numbers that can be negative).

## Required methods

### `fn abs(&self) -> Self`

Computes the absolute value.

For `f32` and `f64`, `NaN` will be returned if the number is `NaN`.

For signed integers, `::MIN` will be returned if the number is `::MIN`.

### `fn abs_sub(&self, other: &Self) -> Self`

The positive difference of two numbers.

Returns `zero` if the number is less than or equal to `other`, otherwise the difference between `self` and `other` is returned.

### `fn signum(&self) -> Self`

Returns the sign of the number.

For `f32` and `f64`:

- `1.0` if the number is positive, `+0.0` or `INFINITY`
- `-1.0` if the number is negative, `-0.0` or `NEG_INFINITY`
- `NaN` if the number is `NaN`

For signed integers:

- `0` if the number is zero
- `1` if the number is positive
- `-1` if the number is negative

### `fn is_positive(&self) -> bool`

Returns true if the number is positive and false if the number is zero or negative.

### `fn is_negative(&self) -> bool`

Returns true if the number is negative and false if the number is zero or positive.

Loading content...

## Implementations on Foreign Types

### `impl Signed for isize`[src]

#### `fn abs(&self) -> isize`[src]

#### `fn abs_sub(&self, other: &isize) -> isize`[src]

#### `fn signum(&self) -> isize`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl Signed for i8`[src]

#### `fn abs(&self) -> i8`[src]

#### `fn abs_sub(&self, other: &i8) -> i8`[src]

#### `fn signum(&self) -> i8`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl Signed for i16`[src]

#### `fn abs(&self) -> i16`[src]

#### `fn abs_sub(&self, other: &i16) -> i16`[src]

#### `fn signum(&self) -> i16`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl Signed for i32`[src]

#### `fn abs(&self) -> i32`[src]

#### `fn abs_sub(&self, other: &i32) -> i32`[src]

#### `fn signum(&self) -> i32`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl Signed for i64`[src]

#### `fn abs(&self) -> i64`[src]

#### `fn abs_sub(&self, other: &i64) -> i64`[src]

#### `fn signum(&self) -> i64`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl Signed for i128`[src]

#### `fn abs(&self) -> i128`[src]

#### `fn abs_sub(&self, other: &i128) -> i128`[src]

#### `fn signum(&self) -> i128`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl<T: Signed> Signed for Wrapping<T> where
Wrapping<T>: Num + Neg<Output = Wrapping<T>>,` [src]

#### `fn abs(&self) -> Self`[src]

#### `fn abs_sub(&self, other: &Self) -> Self`[src]

#### `fn signum(&self) -> Self`[src]

#### `fn is_positive(&self) -> bool`[src]

#### `fn is_negative(&self) -> bool`[src]

### `impl Signed for f32`[src]

#### `fn abs(&self) -> f32`[src]

Computes the absolute value. Returns `NAN` if the number is `NAN`.

#### `fn abs_sub(&self, other: &f32) -> f32`[src]

The positive difference of two numbers. Returns `0.0` if the number is less than or equal to `other`, otherwise the difference between`self` and `other` is returned.

#### `fn signum(&self) -> f32`[src]

# Returns

- `1.0` if the number is positive, `+0.0` or `INFINITY`
- `-1.0` if the number is negative, `-0.0` or `NEG_INFINITY`
- `NAN` if the number is NaN

#### `fn is_positive(&self) -> bool`[src]

Returns `true` if the number is positive, including `+0.0` and `INFINITY`

#### `fn is_negative(&self) -> bool`[src]

Returns `true` if the number is negative, including `-0.0` and `NEG_INFINITY`

### `impl Signed for f64`[src]

#### `fn abs(&self) -> f64`[src]

Computes the absolute value. Returns `NAN` if the number is `NAN`.

#### `fn abs_sub(&self, other: &f64) -> f64`[src]

The positive difference of two numbers. Returns `0.0` if the number is less than or equal to `other`, otherwise the difference between`self` and `other` is returned.

#### `fn signum(&self) -> f64`[src]

# Returns

- `1.0` if the number is positive, `+0.0` or `INFINITY`
- `-1.0` if the number is negative, `-0.0` or `NEG_INFINITY`
- `NAN` if the number is NaN

#### `fn is_positive(&self) -> bool`[src]

Returns `true` if the number is positive, including `+0.0` and `INFINITY`

#### `fn is_negative(&self) -> bool`[src]

Returns `true` if the number is negative, including `-0.0` and `NEG_INFINITY`

Loading content...

## Implementors

Loading content...

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## Search Tricks

Prefix searches with a type followed by a colon (e.g., `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g., `vec -> usize` or `* -> vec`)

Search multiple things at once by splitting your query with comma (e.g., `str,u8` or `String,struct:Vec,test`)