pub struct Fraction { /* private fields */ }
Expand description
A fraction value in nanoseconds or lower value.
§Precision note
ixdtf
parses a fraction value to a precision of 18 digits of precision, but
preserves the fraction’s digit length
Implementations§
Source§impl Fraction
impl Fraction
Sourcepub fn to_nanoseconds(&self) -> Option<u32>
pub fn to_nanoseconds(&self) -> Option<u32>
Returns Some(u32
) representing the Fraction
as it’s computed
nanosecond value or None
if the digits exceeds 9 digits.
use ixdtf::parsers::IxdtfParser;
// Fraction is below 9 digits.
let fraction_str = "2025-02-17T05:41:32.12345678";
let result = IxdtfParser::from_str(fraction_str).parse().unwrap();
let time = result.time.unwrap();
let fraction = time.fraction.unwrap();
assert_eq!(fraction.to_nanoseconds(), Some(123456780));
// Fraction is 10 digits.
let fraction_str = "2025-02-17T05:41:32.1234567898";
let result = IxdtfParser::from_str(fraction_str).parse().unwrap();
let time = result.time.unwrap();
let fraction = time.fraction.unwrap();
assert_eq!(fraction.to_nanoseconds(), None);
Sourcepub fn to_truncated_nanoseconds(&self) -> u32
pub fn to_truncated_nanoseconds(&self) -> u32
Returns a u32
representing the Fraction
as it’s computed
nanosecond value, truncating any value beyond 9 digits to
nanoseconds.
This method will return None
if the value exceeds a represented
range or the underlying Fraction
is malformed.
use ixdtf::parsers::IxdtfParser;
// Fraction is 13 digits.
let fraction_str = "2025-02-17T05:41:32.1234567898765";
let result = IxdtfParser::from_str(fraction_str).parse().unwrap();
let time = result.time.unwrap();
let fraction = time.fraction.unwrap();
assert_eq!(fraction.to_truncated_nanoseconds(), 123456789);
assert_eq!(fraction.to_nanoseconds(), None);
Trait Implementations§
impl Copy for Fraction
impl StructuralPartialEq for Fraction
Auto Trait Implementations§
impl Freeze for Fraction
impl RefUnwindSafe for Fraction
impl Send for Fraction
impl Sync for Fraction
impl Unpin for Fraction
impl UnwindSafe for Fraction
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