Enum Unit
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 A Gregorian calendar year. It usually has 365 days for non-leap years, and 366 days for leap years.
-
Month A Gregorian calendar month. It usually has one of 28, 29, 30 or 31 days.
-
Week A week is 7 days that either begins on Sunday or Monday.
-
Day A day is usually 24 hours, but some days may have different lengths due to time zone transitions.
-
Hour An hour is always 60 minutes.
-
Minute A minute is always 60 seconds. (Jiff behaves as if leap seconds do not exist.)
-
Second A second is always 1,000 milliseconds.
-
Millisecond A millisecond is always 1,000 microseconds.
-
Microsecond A microsecond is always 1,000 nanoseconds.
-
Nanosecond A nanosecond is the smallest granularity of time supported by Jiff.
Implementations
impl Clone for Unit
fn clone(self: &Self) -> Unit
impl Copy for Unit
impl Debug for Unit
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Eq for Unit
impl Freeze for Unit
impl From for Unit
fn from(u: FractionalUnit) -> Unit
impl Hash for Unit
fn hash<__H: $crate::hash::Hasher>(self: &Self, state: &mut __H)
impl Ord for Unit
fn cmp(self: &Self, other: &Unit) -> Ordering
impl PartialEq for Unit
fn eq(self: &Self, other: &Unit) -> bool
impl PartialOrd for Unit
fn partial_cmp(self: &Self, other: &Unit) -> Option<Ordering>
impl RefUnwindSafe for Unit
impl Send for Unit
impl StructuralPartialEq for Unit
impl Sync for Unit
impl Unpin for Unit
impl UnsafeUnpin for Unit
impl UnwindSafe for Unit
impl<T> Any for Unit
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Unit
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Unit
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Unit
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for Unit
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Unit
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for Unit
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Unit
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Unit
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>