# Trait bonsaidb::core::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;
}
```

## Expand description

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

## Required methods

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`

.

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.

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

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

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

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.

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

Returns `true`

if the number is positive, including `+0.0`

and `INFINITY`

Returns `true`

if the number is negative, including `-0.0`

and `NEG_INFINITY`

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.

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

Returns `true`

if the number is positive, including `+0.0`

and `INFINITY`

Returns `true`

if the number is negative, including `-0.0`

and `NEG_INFINITY`