[][src]Enum entity::Number

pub enum Number {
    F32(f32),
    F64(f64),
    I128(i128),
    I16(i16),
    I32(i32),
    I64(i64),
    I8(i8),
    Isize(isize),
    U128(u128),
    U16(u16),
    U32(u32),
    U64(u64),
    U8(u8),
    Usize(usize),
}

Represents a generic number that maintains an internal Rust representation of the actual number

Variants

F32(f32)
F64(f64)
I128(i128)
I16(i16)
I32(i32)
I64(i64)
I8(i8)
Isize(isize)
U128(u128)
U16(u16)
U32(u32)
U64(u64)
U8(u8)
Usize(usize)

Implementations

impl Number[src]

pub fn sign(&self) -> NumberSign[src]

Returns an indicator of the sign (negative, zero, positive) of this number

use entity::{Number, NumberSign};

assert_eq!(Number::from(0).sign(), NumberSign::Zero);
assert_eq!(Number::from(99).sign(), NumberSign::Positive);
assert_eq!(Number::from(-99).sign(), NumberSign::Negative);

pub fn is_zero(&self) -> bool[src]

Returns true if number is zero (not negative or positive)

use entity::Number;

assert!(Number::from(0).is_zero());
assert!(!Number::from(1).is_zero());
assert!(!Number::from(-1).is_zero());

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

Returns true if number is positive (not zero or negative)

Examples

use entity::Number;

assert!(Number::from(1).is_positive());
assert!(!Number::from(0).is_positive());
assert!(!Number::from(-1).is_positive());

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

Returns true if number is negative (not zero or positive)

Examples

use entity::Number;

assert!(Number::from(-1).is_negative());
assert!(!Number::from(0).is_negative());
assert!(!Number::from(1).is_negative());

pub fn is_signed(&self) -> bool[src]

Returns true if number is a signed integer

Examples

use entity::Number;

assert!(Number::from(3isize).is_signed());
assert!(!Number::from(3usize).is_signed());

pub fn is_unsigned(&self) -> bool[src]

Returns true if number is an unsigned integer

Examples

use entity::Number;

assert!(Number::from(3usize).is_unsigned());
assert!(!Number::from(3isize).is_unsigned());

pub fn is_float(&self) -> bool[src]

Returns true if number is a float

Examples

use entity::Number;

assert!(Number::from(3f32).is_float());
assert!(!Number::from(3usize).is_float());

pub fn has_nonzero_fraction(&self) -> bool[src]

Returns true if number is a float with a non-zero fractional part

Examples

use entity::Number;

assert!(Number::from(3.1).has_nonzero_fraction());
assert!(!Number::from(3.0).has_nonzero_fraction());

pub fn is_normal(&self) -> bool[src]

Returns true if number is neither zero, infinite, subnormal, or NaN

Examples

use entity::Number;

assert!(Number::from(1).is_normal());
assert!(Number::from(0.1).is_normal());
assert!(!Number::from(0).is_normal());
assert!(!Number::from(f64::NAN).is_normal());
assert!(!Number::from(f64::INFINITY).is_normal());
assert!(!Number::from(f64::NEG_INFINITY).is_normal());
assert!(!Number::from(1.0e-308_f64).is_normal());

pub fn to_absolute(&self) -> Self[src]

Returns a conversion of the underlying number to an absolute version of itself

pub fn to_f64(&self) -> f64[src]

Naive casting of number's inner representation to f64by performing x as f64

pub fn to_f32(&self) -> f32[src]

Naive casting of number's inner representation to f32by performing x as f32

pub fn to_isize(&self) -> isize[src]

Naive casting of number's inner representation to isizeby performing x as isize

pub fn to_i128(&self) -> i128[src]

Naive casting of number's inner representation to i128by performing x as i128

pub fn to_i64(&self) -> i64[src]

Naive casting of number's inner representation to i64by performing x as i64

pub fn to_i32(&self) -> i32[src]

Naive casting of number's inner representation to i32by performing x as i32

pub fn to_i16(&self) -> i16[src]

Naive casting of number's inner representation to i16by performing x as i16

pub fn to_i8(&self) -> i8[src]

Naive casting of number's inner representation to i8by performing x as i8

pub fn to_usize(&self) -> usize[src]

Naive casting of number's inner representation to usizeby performing x as usize

pub fn to_u128(&self) -> u128[src]

Naive casting of number's inner representation to u128by performing x as u128

pub fn to_u64(&self) -> u64[src]

Naive casting of number's inner representation to u64by performing x as u64

pub fn to_u32(&self) -> u32[src]

Naive casting of number's inner representation to u32by performing x as u32

pub fn to_u16(&self) -> u16[src]

Naive casting of number's inner representation to u16by performing x as u16

pub fn to_u8(&self) -> u8[src]

Naive casting of number's inner representation to u8by performing x as u8

pub fn to_type(&self) -> NumberType[src]

Converts into type of number

Trait Implementations

impl Clone for Number[src]

impl Copy for Number[src]

impl Debug for Number[src]

impl Eq for Number[src]

impl<'_enum> From<&'_enum Number> for NumberType[src]

impl From<Number> for NumberType[src]

impl From<Number> for PrimitiveValue[src]

impl From<f32> for Number[src]

impl From<f64> for Number[src]

impl From<i128> for Number[src]

impl From<i16> for Number[src]

impl From<i32> for Number[src]

impl From<i64> for Number[src]

impl From<i8> for Number[src]

impl From<isize> for Number[src]

impl From<u128> for Number[src]

impl From<u16> for Number[src]

impl From<u32> for Number[src]

impl From<u64> for Number[src]

impl From<u8> for Number[src]

impl From<usize> for Number[src]

impl Hash for Number[src]

impl PartialEq<Number> for Number[src]

impl PartialOrd<Number> for Number[src]

pub fn partial_cmp(&self, other: &Self) -> Option<Ordering>[src]

Compares two numbers if possible. If either number is not zero and not normal as defined by Rust's specification, None is returned.

self signother signsituation
negativenegativedoes comparison (less/equal/greater)
negativepositiveless than
negativezeroless than
positivenegativegreater than
positivepositivedoes comparison (less/equal/greater)
positivezerogreater than
zeronegativegreater than
zeropositiveless than
zerozeroequal

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DynClone for T where
    T: Clone
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.