Struct json::number::Number [] [src]

pub struct Number { /* fields omitted */ }

Number representation used inside JsonValue. You can easily convert the Number type into native Rust number types and back, or use the equality operator with another number type.

let foo: Number = 3.14.into();
let bar: f64 = foo.into();

assert_eq!(foo, 3.14);
assert_eq!(bar, 3.14);Run

More often than not you will deal with JsonValue::Number variant that wraps around this type, instead of using the methods here directly.

Methods

impl Number
[src]

Construct a new Number from parts. This can't create a NaN value.

let pi = Number::from_parts(true, 3141592653589793, -15);

assert_eq!(pi, 3.141592653589793);Run

Reverse to from_parts - obtain parts from an existing Number.

let pi = Number::from(3.141592653589793);
let (positive, mantissa, exponent) = pi.as_parts();

assert_eq!(positive, true);
assert_eq!(mantissa, 3141592653589793);
assert_eq!(exponent, -15);Run

Test if the number is NaN or has a zero value.

Obtain an integer at a fixed decimal point. This is useful for converting monetary values and doing arithmetic on them without rounding errors introduced by floating point operations.

Will return None if Number is negative or a NaN.

let price_a = Number::from(5.99);
let price_b = Number::from(7);
let price_c = Number::from(10.2);

assert_eq!(price_a.as_fixed_point_u64(2), Some(599));
assert_eq!(price_b.as_fixed_point_u64(2), Some(700));
assert_eq!(price_c.as_fixed_point_u64(2), Some(1020));Run

Analog to as_fixed_point_u64, except returning a signed i64, properly handling negative numbers.

let balance_a = Number::from(-1.49);
let balance_b = Number::from(42);

assert_eq!(balance_a.as_fixed_point_i64(2), Some(-149));
assert_eq!(balance_b.as_fixed_point_i64(2), Some(4200));Run

Trait Implementations

impl PartialEq<JsonValue> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Copy for Number
[src]

impl Clone for Number
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for Number
[src]

Formats the value using the given formatter.

impl PartialEq for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Display for Number
[src]

Formats the value using the given formatter.

impl From<f64> for Number
[src]

Performs the conversion.

impl From<f32> for Number
[src]

Performs the conversion.

impl PartialEq<f64> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl PartialEq<f32> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<isize> for Number
[src]

Performs the conversion.

impl PartialEq<isize> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<i8> for Number
[src]

Performs the conversion.

impl PartialEq<i8> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<i16> for Number
[src]

Performs the conversion.

impl PartialEq<i16> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<i32> for Number
[src]

Performs the conversion.

impl PartialEq<i32> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<i64> for Number
[src]

Performs the conversion.

impl PartialEq<i64> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<usize> for Number
[src]

Performs the conversion.

impl PartialEq<usize> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<u8> for Number
[src]

Performs the conversion.

impl PartialEq<u8> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<u16> for Number
[src]

Performs the conversion.

impl PartialEq<u16> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<u32> for Number
[src]

Performs the conversion.

impl PartialEq<u32> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl From<u64> for Number
[src]

Performs the conversion.

impl PartialEq<u64> for Number
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Neg for Number
[src]

The resulting type after applying the - operator

The method for the unary - operator