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

    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.

## Implementors

- `impl Signed for isize`
- `impl Signed for i8`
- `impl Signed for i16`
- `impl Signed for i32`
- `impl Signed for i64`
- `impl<T: Signed> Signed for Wrapping<T> where
  Wrapping<T>: Num + Neg<Output = Wrapping<T>>,`
- `impl Signed for f32`
- `impl Signed for f64`

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result
+
  Collapse/expand 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`)