Skip to main content

Time64

Struct Time64 

Source
pub struct Time64 { /* private fields */ }
Expand description

64 Bit Fixed Precision Time Format, storing 32 bits of Seconds, and 32 bits of Fractional Seconds. This is the equivalent of Q32.32, and is semantically equivalent to the NTP Timestamp Format if using the epoch::NTP_EPOCH.

The 32-bit seconds field can resolve 136 years, and the 32-bit fractional field can resolve down to 232 picoseconds.

The raw value is 64 bits wide, if you take the middle 32 bits, this is identical to a Time32 - (lower 16 of seconds, upper 16 of fractional_seconds).

Implementations§

Source§

impl Time64

Source

pub const fn as_u64(&self) -> u64

Returns the value of this Time64 as a Q32.32

Source

pub fn from_unix_u64(value: u64) -> Self

Creates a new timestamp with a unix epoch

Source

pub fn from_unix_raw(value: u64) -> Self

Source§

impl Time64

Source

pub const fn new(epoch: Epoch, seconds: u32, fractional_seconds: u32) -> Self

Source

pub fn new_f64(epoch: Epoch, seconds: f64) -> Self

Source

pub const fn get_epoch(&self) -> Epoch

Returns the reference epoch of this Time

Source

pub const fn get_seconds(&self) -> u32

Source

pub const fn get_fractional_seconds(&self) -> u32

Source

pub fn as_f64(&self) -> f64

Source

pub fn try_from_iso8601(val: &str) -> Result<Self, FormatError>

Source

pub fn now() -> Self

Available on crate feature std only.
Source

pub fn as_only_seconds(&self) -> Self

Source

pub fn as_only_fractional(&self) -> Self

Source

pub fn as_epoch(&self, other: Epoch) -> Self

Methods from Deref<Target = FixedU64>§

Source

pub const E: FixedU64

Source

pub const PI: FixedU64

Source

pub const ONE_HALF: FixedU64

Source

pub const RESOLUTION: FixedU64

Source

pub const LN10: FixedU64

Source

pub fn trunc(&self) -> u32

Source

pub fn whole(&self) -> u32

Source

pub fn fract(&self) -> u32

Source

pub fn raw_value(&self) -> u64

Source

pub fn as_f64(&self) -> f64

Source

pub fn is_zero(&self) -> bool

Trait Implementations§

Source§

impl Add<Duration> for Time64

Source§

type Output = Time64

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Duration) -> Self::Output

Performs the + operation. Read more
Source§

impl AddAssign<Duration> for &mut Time64

Source§

fn add_assign(&mut self, rhs: Duration)

Performs the += operation. Read more
Source§

impl AddAssign<Duration> for Time64

Source§

fn add_assign(&mut self, rhs: Duration)

Performs the += operation. Read more
Source§

impl Clone for Time64

Source§

fn clone(&self) -> Time64

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Time64

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Time64

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Deref for Time64

Source§

type Target = FixedU64

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T> From<&Time64> for Timestamp<T>

Source§

fn from(value: &Time64) -> Self

Converts to this type from the input type.
Source§

impl From<&Time64> for f64

Source§

fn from(value: &Time64) -> Self

Converts to this type from the input type.
Source§

impl<T> From<&Timestamp<T>> for Time64

Source§

fn from(value: &Timestamp<T>) -> Self

Converts to this type from the input type.
Source§

impl From<&UTCDateTime> for Time64

Source§

fn from(value: &UTCDateTime) -> Self

Converts to this type from the input type.
Source§

impl<T> From<&mut Time64> for Timestamp<T>

Source§

fn from(value: &mut Time64) -> Self

Converts to this type from the input type.
Source§

impl From<&mut Time64> for f64

Source§

fn from(value: &mut Time64) -> Self

Converts to this type from the input type.
Source§

impl<T> From<&mut Timestamp<T>> for Time64

Source§

fn from(value: &mut Timestamp<T>) -> Self

Converts to this type from the input type.
Source§

impl From<&mut UTCDateTime> for Time64

Source§

fn from(value: &mut UTCDateTime) -> Self

Converts to this type from the input type.
Source§

impl<T> From<Time64> for Timestamp<T>

Source§

fn from(value: Time64) -> Self

Converts to this type from the input type.
Source§

impl From<Time64> for f64

Source§

fn from(value: Time64) -> Self

Converts to this type from the input type.
Source§

impl<T> From<Timestamp<T>> for Time64

Source§

fn from(value: Timestamp<T>) -> Self

Converts to this type from the input type.
Source§

impl From<UTCDateTime> for Time64

Source§

fn from(value: UTCDateTime) -> Self

Converts to this type from the input type.
Source§

impl Hash for Time64

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for Time64

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Time64

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Time64

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Sub for &Time64

Source§

type Output = Time64

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub for Time64

Source§

type Output = Time64

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Self) -> Self::Output

Performs the - operation. Read more
Source§

impl Copy for Time64

Source§

impl Eq for Time64

Auto Trait Implementations§

§

impl Freeze for Time64

§

impl RefUnwindSafe for Time64

§

impl Send for Time64

§

impl Sync for Time64

§

impl Unpin for Time64

§

impl UnwindSafe for Time64

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> MaybeInto<U> for T
where U: MaybeFrom<T>,

Source§

fn maybe_into(self) -> Option<U>

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.