Enum Unit
pub enum Unit
A way to refer to a single calendar or clock unit.
This type is principally used in APIs involving a Span, which is a
duration of time. For example, routines like Zoned::until permit
specifying the largest unit of the span returned:
use ;
let zdt1: Zoned = "2024-07-06 17:40-04[America/New_York]".parse?;
let zdt2: Zoned = "2024-11-05 08:00-05[America/New_York]".parse?;
let span = zdt1.until?;
assert_eq!;
# Ok::
But a Unit is also used in APIs for rounding datetimes themselves:
use ;
let zdt: Zoned = "2024-07-06 17:44:22.158-04[America/New_York]".parse?;
let nearest_minute = zdt.round?;
assert_eq!;
# Ok::
Example: ordering
This example demonstrates that Unit has an ordering defined such that
bigger units compare greater than smaller units.
use Unit;
assert!;
assert!;
assert!;
assert!;
assert_eq!;
Variants
-
Year = 9 A Gregorian calendar year. It usually has 365 days for non-leap years, and 366 days for leap years.
-
Month = 8 A Gregorian calendar month. It usually has one of 28, 29, 30 or 31 days.
-
Week = 7 A week is 7 days that either begins on Sunday or Monday.
-
Day = 6 A day is usually 24 hours, but some days may have different lengths due to time zone transitions.
-
Hour = 5 An hour is always 60 minutes.
-
Minute = 4 A minute is always 60 seconds. (Jiff behaves as if leap seconds do not exist.)
-
Second = 3 A second is always 1,000 milliseconds.
-
Millisecond = 2 A millisecond is always 1,000 microseconds.
-
Microsecond = 1 A microsecond is always 1,000 nanoseconds.
-
Nanosecond = 0 A nanosecond is the smallest granularity of time supported by Jiff.
Trait Implementations
impl Clone for Unit
fn clone(&self) -> Unit
impl Copy for Unit
impl Debug for Unit
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl Eq for Unit
impl From<FractionalUnit> for Unit
fn from(u: FractionalUnit) -> Unit
impl Hash for Unit
fn hash<__H: Hasher>(&self, state: &mut __H)
impl Ord for Unit
fn cmp(&self, other: &Unit) -> Ordering
impl PartialEq for Unit
fn eq(&self, other: &Unit) -> bool
impl PartialOrd for Unit
fn partial_cmp(&self, other: &Unit) -> Option<Ordering>
impl StructuralPartialEq for Unit
Auto Trait Implementations
impl Freeze for Unit
impl RefUnwindSafe for Unit
impl Send for Unit
impl Sync for Unit
impl Unpin for Unit
impl UnsafeUnpin for Unit
impl UnwindSafe for Unit
Blanket Implementations
impl<T> Any for Unit
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Unit
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Unit
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Unit
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Unit
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Unit
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for Unit
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Unit
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Unit
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>