devela::phys

Type Alias TimeSplitYearSecNorm

Source
pub type TimeSplitYearSecNorm = TimeSplit<u64, u8, u8, u8, u8, u8, (), (), ()>;
Available on crate feature time only.
Expand description

A time split from years to seconds, normalized (128b size, 104b payload).

Aliased Type§

struct TimeSplitYearSecNorm {
    pub y: u64,
    pub mo: u8,
    pub d: u8,
    pub h: u8,
    pub m: u8,
    pub s: u8,
    pub ms: (),
    pub us: (),
    pub ns: (),
}

Fields§

§y: u64

Years.

§mo: u8

Months.

§d: u8

Days.

§h: u8

Hours.

§m: u8

Minutes.

§s: u8

Seconds.

§ms: ()

Milliseconds.

§us: ()

Microseconds.

§ns: ()

Nanoseconds.

Implementations§

Source§

impl TimeSplitYearSecNorm

Source

pub const fn from_duration(duration: Duration) -> Self

Converts a Duration into a TimeSplitYearSec.

It assumes non-leap years and 30-day months for simplicity in calendar calculations.

Source§

impl<Y, MO, D, H, M, S> TimeSplit<Y, MO, D, H, M, S, (), (), ()>

Source

pub const fn new_year_sec(y: Y, mo: MO, d: D, h: H, m: M, s: S) -> Self

Returns a new TimeSplitYearSec.

Source§

impl<Y, MO, D, H, M, S, MS, US, NS> TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

§Structural introspection

Source

pub const Y: bool

Indicates whether the y field is enabled.

Source

pub const MO: bool

Indicates whether the mo field is enabled.

Source

pub const D: bool

Indicates whether the d field is enabled.

Source

pub const H: bool

Indicates whether the h field is enabled.

Source

pub const M: bool

Indicates whether the m field is enabled.

Source

pub const S: bool

Indicates whether the s field is enabled.

Source

pub const MS: bool

Indicates whether the ms field is enabled.

Source

pub const US: bool

Indicates whether the us field is enabled.

Source

pub const NS: bool

Indicates whether the ns field is enabled.

Source

pub const Y_D: bool

Indicates whether the 3 fields from y to d are enabled.

Source

pub const H_S: bool

Indicates whether the 3 fields from h to s are enabled.

Source

pub const MS_NS: bool

Indicates whether the 3 fields from ms to ns are enabled.

Source

pub const Y_S: bool

Indicates whether the 6 fields from y to s are enabled.

Source

pub const H_NS: bool

Indicates whether the 6 fields from h to ns are enabled.

Source

pub const Y_NS: bool

Indicates whether all the 9 fields from y to ns are enabled.

Source

pub const IS_YEAR_DAY: bool

Indicates whether only the 3 fields from y to d are enabled.

Source

pub const IS_HOUR_SEC: bool

Indicates whether only the 3 fields from h to s are enabled.

Source

pub const IS_MILLI_NANO: bool

Indicates whether the 3 fields from ms to ns are enabled.

Source

pub const IS_YEAR_SEC: bool

Indicates whether only the 6 fields from y to s are enabled.

Source

pub const IS_HOUR_NANO: bool

Indicates whether only the 6 fields from h to ns are enabled.

Source

pub const IS_YEAR_NANO: bool = Self::Y_NS

Indicates whether all the 9 fields from y to ns are enabled.

Source§

impl<Y, MO, D, H, M, S, MS, US, NS> TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

§Instance introspection

Source

pub const fn has_y(&self) -> bool

Indicates whether the y field is enabled.

Source

pub const fn has_mo(&self) -> bool

Indicates whether the mo field is enabled.

Source

pub const fn has_d(&self) -> bool

Indicates whether the d field is enabled.

Source

pub const fn has_h(&self) -> bool

Indicates whether the h field is enabled.

Source

pub const fn has_s(&self) -> bool

Indicates whether the s field is enabled.

Source

pub const fn has_ms(&self) -> bool

Indicates whether the ms field is enabled.

Source

pub const fn has_us(&self) -> bool

Indicates whether the us field is enabled.

Source

pub const fn has_ns(&self) -> bool

Indicates whether the ns field is enabled.

Source

pub const fn has_y_d(&self) -> bool

Indicates whether the 3 fields from y to d are enabled.

Source

pub const fn has_h_s(&self) -> bool

Indicates whether the 3 fields from h to s are enabled.

Source

pub const fn has_ms_ns(&self) -> bool

Indicates whether the 3 fields from ms to ns are enabled.

Source

pub const fn has_y_s(&self) -> bool

Indicates whether the 6 fields from y to s are enabled.

Source

pub const fn has_h_ns(&self) -> bool

Indicates whether the 6 fields from h to ns are enabled.

Source

pub const fn has_y_ns(&self) -> bool

Indicates whether all the 9 fields from y to ns are enabled.

Source

pub const fn is_year_day(&self) -> bool

Indicates whether only the 3 fields from y to d are enabled.

Source

pub const fn is_hour_sec(&self) -> bool

Indicates whether only the 3 fields from h to s are enabled.

Source

pub const fn is_milli_nano(&self) -> bool

Indicates whether the 3 fields from ms to ns are enabled.

Source

pub const fn is_year_sec(&self) -> bool

Indicates whether only the 6 fields from y to s are enabled.

Source

pub const fn is_hour_nano(&self) -> bool

Indicates whether only the 6 fields from h to ns are enabled.

Source

pub const fn is_year_nano(&self) -> bool

Indicates whether all the 9 fields from y to ns are enabled.

Source§

impl<Y, MO, D, H, M, S, MS, US, NS> TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source

pub fn as_tuple(self) -> (Y, MO, D, H, M, S, MS, US, NS)

Returns a (9) tuple with all the elements.

Source

pub const fn to_tuple(&self) -> (Y, MO, D, H, M, S, MS, US, NS)
where Y: Copy, MO: Copy, D: Copy, H: Copy, M: Copy, S: Copy, MS: Copy, US: Copy, NS: Copy,

Returns a (9) tuple with all the elements.

Source

pub fn as_tuple_y_d(self) -> Option<(Y, MO, D)>

Returns a (3) tuple if the 3 fields from y to d are enabled.

Source

pub const fn to_tuple_y_d(&self) -> Option<(Y, MO, D)>
where Y: Copy, MO: Copy, D: Copy,

Returns a (3) tuple if the 3 fields from y to d are enabled.

Source

pub fn as_tuple_h_s(self) -> Option<(H, M, S)>

Returns a (3) tuple if the 3 fields from h to s are enabled.

Source

pub const fn to_tuple_h_s(&self) -> Option<(H, M, S)>
where H: Copy, M: Copy, S: Copy,

Returns a (3) tuple if the 3 fields from h to s are enabled.

Source

pub fn as_tuple_ms_ns(self) -> Option<(MS, US, NS)>

Returns a (3) tuple if the 3 fields from ms to ns are enabled.

Source

pub const fn to_tuple_ms_ns(&self) -> Option<(MS, US, NS)>
where MS: Copy, US: Copy, NS: Copy,

Returns a (3) tuple if the 3 fields from ms to ns are enabled.

Source

pub fn as_tuple_y_s(self) -> Option<(Y, MO, D, H, M, S)>

Returns a (6) tuple if the 6 fields from y to s are enabled.

Source

pub const fn to_tuple_y_s(&self) -> Option<(Y, MO, D, H, M, S)>
where Y: Copy, MO: Copy, D: Copy, H: Copy, M: Copy, S: Copy,

Returns a (6) tuple if the 6 fields from y to s are enabled.

Source

pub fn as_tuple_h_ns(self) -> Option<(H, M, S, MS, US, NS)>

Returns a (6) tuple if the 6 fields from h to ns are enabled.

Source

pub const fn to_tuple_h_ns(&self) -> Option<(H, M, S, MS, US, NS)>
where H: Copy, M: Copy, S: Copy, MS: Copy, US: Copy, NS: Copy,

Returns a (6) tuple if the 6 fields from h to ns are enabled.

Source

pub fn as_tuple_y_ns(self) -> Option<(Y, MO, D, H, M, S, MS, US, NS)>

Returns a (9) tuple if the 9 fields from y to ns are enabled.

Source

pub const fn to_tuple_y_ns(&self) -> Option<(Y, MO, D, H, M, S, MS, US, NS)>
where Y: Copy, MO: Copy, D: Copy, H: Copy, M: Copy, S: Copy, MS: Copy, US: Copy, NS: Copy,

Returns a (9) tuple if the 9 fields from y to ns are enabled.

Source§

impl<Y, MO, D, H, M, S, MS, US, NS> TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source

pub const fn new( y: Y, mo: MO, d: D, h: H, m: M, s: S, ms: MS, us: US, ns: NS, ) -> Self

Returns a new TimeSplit.

Trait Implementations

Source§

impl<Y: Clone, MO: Clone, D: Clone, H: Clone, M: Clone, S: Clone, MS: Clone, US: Clone, NS: Clone> Clone for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

fn clone(&self) -> TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Returns a copy 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<Y, MO, D, H, M, S, MS, US, NS> Debug for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>
where Y: 'static + Debug, MO: 'static + Debug, D: 'static + Debug, H: 'static + Debug, M: 'static + Debug, S: 'static + Debug, MS: 'static + Debug, US: 'static + Debug, NS: 'static + Debug,

Source§

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

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

impl<Y: Default, MO: Default, D: Default, H: Default, M: Default, S: Default, MS: Default, US: Default, NS: Default> Default for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

fn default() -> TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

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

impl<Y: Hash, MO: Hash, D: Hash, H: Hash, M: Hash, S: Hash, MS: Hash, US: Hash, NS: Hash> Hash for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

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<Y: Ord, MO: Ord, D: Ord, H: Ord, M: Ord, S: Ord, MS: Ord, US: Ord, NS: Ord> Ord for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

fn cmp(&self, other: &TimeSplit<Y, MO, D, H, M, S, MS, US, NS>) -> 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<Y: PartialEq, MO: PartialEq, D: PartialEq, H: PartialEq, M: PartialEq, S: PartialEq, MS: PartialEq, US: PartialEq, NS: PartialEq> PartialEq for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

fn eq(&self, other: &TimeSplit<Y, MO, D, H, M, S, MS, US, NS>) -> 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<Y: PartialOrd, MO: PartialOrd, D: PartialOrd, H: PartialOrd, M: PartialOrd, S: PartialOrd, MS: PartialOrd, US: PartialOrd, NS: PartialOrd> PartialOrd for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

fn partial_cmp( &self, other: &TimeSplit<Y, MO, D, H, M, S, MS, US, NS>, ) -> 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<Y: Copy, MO: Copy, D: Copy, H: Copy, M: Copy, S: Copy, MS: Copy, US: Copy, NS: Copy> Copy for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

impl<Y: Eq, MO: Eq, D: Eq, H: Eq, M: Eq, S: Eq, MS: Eq, US: Eq, NS: Eq> Eq for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>

Source§

impl<Y, MO, D, H, M, S, MS, US, NS> StructuralPartialEq for TimeSplit<Y, MO, D, H, M, S, MS, US, NS>