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

    pub trait Signed: 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.

## Implementations on Foreign Types

### `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 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<T> Signed for Wrapping<T> where
T: Signed,
Wrapping<T>: Num,
Wrapping<T>: Neg,
<Wrapping<T> as Neg>::Output == Wrapping<T>,`
[src]

#### `fn abs(&self) -> Wrapping<T>`
[src]

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

#### `fn signum(&self) -> Wrapping<T>`
[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 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`

### `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 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]

## Implementors

# 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`)