pub enum Number {
I64(i64),
U64(u64),
F64(f64),
}Expand description
Represents a TOON number.
TOON supports signed integers, unsigned integers, and floating point numbers.
§Examples
use serde_toon2::{Number, Value};
let int = Number::I64(-42);
let uint = Number::U64(42);
let float = Number::F64(3.14);
assert_eq!(int.as_i64(), Some(-42));
assert_eq!(uint.as_u64(), Some(42));
assert_eq!(float.as_f64(), 3.14);Variants§
I64(i64)
A signed 64-bit integer.
U64(u64)
An unsigned 64-bit integer.
F64(f64)
A 64-bit floating point number.
Implementations§
Source§impl Number
impl Number
Sourcepub fn as_i64(&self) -> Option<i64>
pub fn as_i64(&self) -> Option<i64>
Tries to convert this number to an i64.
Returns None if the conversion would lose precision or overflow.
§Examples
use serde_toon2::Number;
assert_eq!(Number::I64(42).as_i64(), Some(42));
assert_eq!(Number::U64(42).as_i64(), Some(42));
assert_eq!(Number::F64(42.0).as_i64(), Some(42));
assert_eq!(Number::F64(42.5).as_i64(), None);Sourcepub fn as_u64(&self) -> Option<u64>
pub fn as_u64(&self) -> Option<u64>
Tries to convert this number to a u64.
Returns None if the conversion would lose precision or overflow.
§Examples
use serde_toon2::Number;
assert_eq!(Number::U64(42).as_u64(), Some(42));
assert_eq!(Number::I64(42).as_u64(), Some(42));
assert_eq!(Number::I64(-42).as_u64(), None);
assert_eq!(Number::F64(42.0).as_u64(), Some(42));
assert_eq!(Number::F64(42.5).as_u64(), None);Sourcepub fn as_f64(&self) -> f64
pub fn as_f64(&self) -> f64
Converts this number to an f64.
This conversion is always possible, though very large integers may lose precision.
§Examples
use serde_toon2::Number;
assert_eq!(Number::I64(42).as_f64(), 42.0);
assert_eq!(Number::U64(42).as_f64(), 42.0);
assert_eq!(Number::F64(3.14).as_f64(), 3.14);Sourcepub fn is_i64(&self) -> bool
pub fn is_i64(&self) -> bool
Returns true if this number is stored as an i64.
§Examples
use serde_toon2::Number;
assert!(Number::I64(42).is_i64());
assert!(!Number::U64(42).is_i64());
assert!(!Number::F64(42.0).is_i64());Trait Implementations§
Source§impl<'de> Deserialize<'de> for Number
impl<'de> Deserialize<'de> for Number
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Number, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Number, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Serialize for Number
impl Serialize for Number
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for Number
Auto Trait Implementations§
impl Freeze for Number
impl RefUnwindSafe for Number
impl Send for Number
impl Sync for Number
impl Unpin for Number
impl UnwindSafe for Number
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more