[][src]Struct tera::Number

pub struct Number { /* fields omitted */ }

Re-export Value and other useful things from serde so apps/tools can encode data in Tera types Represents a JSON number, whether integer or floating point.

Methods

impl Number[src]

Re-export Value and other useful things from serde so apps/tools can encode data in Tera types

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

Returns true if the Number is an integer between i64::MIN and i64::MAX.

For any Number on which is_i64 returns true, as_i64 is guaranteed to return the integer value.

This code runs with edition 2018
let big = i64::max_value() as u64 + 10;
let v = json!({ "a": 64, "b": big, "c": 256.0 });

assert!(v["a"].is_i64());

// Greater than i64::MAX.
assert!(!v["b"].is_i64());

// Numbers with a decimal point are not considered integers.
assert!(!v["c"].is_i64());

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

Returns true if the Number is an integer between zero and u64::MAX.

For any Number on which is_u64 returns true, as_u64 is guaranteed to return the integer value.

This code runs with edition 2018
let v = json!({ "a": 64, "b": -64, "c": 256.0 });

assert!(v["a"].is_u64());

// Negative integer.
assert!(!v["b"].is_u64());

// Numbers with a decimal point are not considered integers.
assert!(!v["c"].is_u64());

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

Returns true if the Number can be represented by f64.

For any Number on which is_f64 returns true, as_f64 is guaranteed to return the floating point value.

Currently this function returns true if and only if both is_i64 and is_u64 return false but this is not a guarantee in the future.

This code runs with edition 2018
let v = json!({ "a": 256.0, "b": 64, "c": -64 });

assert!(v["a"].is_f64());

// Integers.
assert!(!v["b"].is_f64());
assert!(!v["c"].is_f64());

pub fn as_i64(&self) -> Option<i64>[src]

If the Number is an integer, represent it as i64 if possible. Returns None otherwise.

This code runs with edition 2018
let big = i64::max_value() as u64 + 10;
let v = json!({ "a": 64, "b": big, "c": 256.0 });

assert_eq!(v["a"].as_i64(), Some(64));
assert_eq!(v["b"].as_i64(), None);
assert_eq!(v["c"].as_i64(), None);

pub fn as_u64(&self) -> Option<u64>[src]

If the Number is an integer, represent it as u64 if possible. Returns None otherwise.

This code runs with edition 2018
let v = json!({ "a": 64, "b": -64, "c": 256.0 });

assert_eq!(v["a"].as_u64(), Some(64));
assert_eq!(v["b"].as_u64(), None);
assert_eq!(v["c"].as_u64(), None);

pub fn as_f64(&self) -> Option<f64>[src]

Represents the number as f64 if possible. Returns None otherwise.

This code runs with edition 2018
let v = json!({ "a": 256.0, "b": 64, "c": -64 });

assert_eq!(v["a"].as_f64(), Some(256.0));
assert_eq!(v["b"].as_f64(), Some(64.0));
assert_eq!(v["c"].as_f64(), Some(-64.0));

pub fn from_f64(f: f64) -> Option<Number>[src]

Converts a finite f64 to a Number. Infinite or NaN values are not JSON numbers.

This code runs with edition 2018
assert!(Number::from_f64(256.0).is_some());

assert!(Number::from_f64(f64::NAN).is_none());

Trait Implementations

impl From<u16> for Number[src]

impl From<isize> for Number[src]

impl From<i8> for Number[src]

impl From<i32> for Number[src]

impl From<ParserNumber> for Number[src]

impl From<u8> for Number[src]

impl From<u32> for Number[src]

impl From<usize> for Number[src]

impl From<i16> for Number[src]

impl From<u64> for Number[src]

impl From<i64> for Number[src]

impl StructuralPartialEq for Number[src]

impl Clone for Number[src]

impl PartialEq<Number> for Number[src]

impl Serialize for Number[src]

impl Debug for Number[src]

impl Display for Number[src]

impl<'de> Deserialize<'de> for Number[src]

impl FromStr for Number[src]

type Err = Error

The associated error which can be returned from parsing.

impl<'de, 'a> Deserializer<'de> for &'a Number[src]

type Error = Error

The error type that can be returned if some error occurs during deserialization. Read more

impl<'de> Deserializer<'de> for Number[src]

type Error = Error

The error type that can be returned if some error occurs during deserialization. Read more

Auto Trait Implementations

impl Send for Number

impl Sync for Number

impl Unpin for Number

impl UnwindSafe for Number

impl RefUnwindSafe for Number

Blanket Implementations

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

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

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

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

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.

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

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

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

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]