Struct serde_json::Number
[−]
[src]
pub struct Number { /* fields omitted */ }
Represents a JSON number, whether integer or floating point.
Methods
impl Number
[src]
fn is_i64(&self) -> bool
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.
let big = i64::MAX 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());
fn is_u64(&self) -> bool
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.
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());
fn is_f64(&self) -> bool
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.
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());
fn as_i64(&self) -> Option<i64>
If the Number
is an integer, represent it as i64 if possible. Returns
None otherwise.
let big = i64::MAX 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);
fn as_u64(&self) -> Option<u64>
If the Number
is an integer, represent it as u64 if possible. Returns
None otherwise.
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);
fn as_f64(&self) -> Option<f64>
Represents the number as f64 if possible. Returns None otherwise.
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));
fn from_f64(f: f64) -> Option<Number>
Converts a finite f64
to a Number
. Infinite or NaN values are not JSON
numbers.
assert!(Number::from_f64(256.0).is_some()); assert!(Number::from_f64(f64::NAN).is_none());
Trait Implementations
impl Clone for Number
[src]
fn clone(&self) -> Number
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl PartialEq for Number
[src]
fn eq(&self, __arg_0: &Number) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, __arg_0: &Number) -> bool
This method tests for !=
.
impl Display for Number
[src]
impl Debug for Number
[src]
impl Serialize for Number
[src]
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer
Serialize this value into the given Serde serializer. Read more
impl<'de> Deserialize<'de> for Number
[src]
fn deserialize<D>(deserializer: D) -> Result<Number, D::Error> where D: Deserializer<'de>
Deserialize this value from the given Serde deserializer. 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
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error> where V: Visitor<'de>
Require the Deserializer
to figure out how to drive the visitor based on what data type is in the input. Read more
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a bool
value.
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i8
value.
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i16
value.
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i32
value.
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i64
value.
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u8
value.
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u16
value.
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u32
value.
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u64
value.
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a f32
value.
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a f64
value.
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a char
value.
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a string value and does not benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a string value and would benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a byte array and does not benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a byte array and would benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an optional value. Read more
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a unit value.
fn deserialize_unit_struct<V>(self,
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a unit struct with a particular name. Read more
fn deserialize_newtype_struct<V>(self,
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a newtype struct with a particular name. Read more
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a sequence of values.
fn deserialize_tuple<V>(self,
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a sequence of values and knows how many values there are without looking at the serialized data. Read more
fn deserialize_tuple_struct<V>(self,
name: &'static str,
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a tuple struct with a particular name and number of fields. Read more
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a map of key-value pairs.
fn deserialize_struct<V>(self,
name: &'static str,
fields: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
fields: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a struct with a particular name and fields. Read more
fn deserialize_enum<V>(self,
name: &'static str,
variants: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
variants: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an enum value with a particular name and possible variants. Read more
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting the name of a struct field or the discriminant of an enum variant. Read more
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type needs to deserialize a value whose type doesn't matter because it is ignored. Read more
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
fn deserialize_any<V>(self, visitor: V) -> Result<V::Value, Error> where V: Visitor<'de>
Require the Deserializer
to figure out how to drive the visitor based on what data type is in the input. Read more
fn deserialize_bool<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a bool
value.
fn deserialize_i8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i8
value.
fn deserialize_i16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i16
value.
fn deserialize_i32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i32
value.
fn deserialize_i64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an i64
value.
fn deserialize_u8<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u8
value.
fn deserialize_u16<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u16
value.
fn deserialize_u32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u32
value.
fn deserialize_u64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a u64
value.
fn deserialize_f32<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a f32
value.
fn deserialize_f64<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a f64
value.
fn deserialize_char<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a char
value.
fn deserialize_str<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a string value and does not benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_string<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a string value and would benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_bytes<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a byte array and does not benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_byte_buf<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a byte array and would benefit from taking ownership of buffered data owned by the Deserializer
. Read more
fn deserialize_option<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an optional value. Read more
fn deserialize_unit<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a unit value.
fn deserialize_unit_struct<V>(self,
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a unit struct with a particular name. Read more
fn deserialize_newtype_struct<V>(self,
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a newtype struct with a particular name. Read more
fn deserialize_seq<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a sequence of values.
fn deserialize_tuple<V>(self,
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a sequence of values and knows how many values there are without looking at the serialized data. Read more
fn deserialize_tuple_struct<V>(self,
name: &'static str,
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
len: usize,
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a tuple struct with a particular name and number of fields. Read more
fn deserialize_map<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a map of key-value pairs.
fn deserialize_struct<V>(self,
name: &'static str,
fields: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
fields: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting a struct with a particular name and fields. Read more
fn deserialize_enum<V>(self,
name: &'static str,
variants: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
name: &'static str,
variants: &'static [&'static str],
visitor: V)
-> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting an enum value with a particular name and possible variants. Read more
fn deserialize_identifier<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type is expecting the name of a struct field or the discriminant of an enum variant. Read more
fn deserialize_ignored_any<V>(self, visitor: V) -> Result<V::Value, Self::Error> where V: Visitor<'de>
Hint that the Deserialize
type needs to deserialize a value whose type doesn't matter because it is ignored. Read more