Enum Designator
enum Designator
Configuration for SpanPrinter::designator.
This controls which kinds of designators to use when formatting a "friendly" duration. Generally, this only provides one axis of control: the length of each designator.
Example
use ;
let span = 1.year.months;
let printer = new;
assert_eq!;
let printer = new.designator;
assert_eq!;
let printer = new.designator;
assert_eq!;
let printer = new.designator;
assert_eq!;
Variants
-
Verbose This writes out the full word of each unit designation. For example,
year.-
Short This writes out a short but not minimal label for each unit. For example,
yrforyearandyrsforyears.-
Compact This writes out the shortest possible label for each unit that is still generally recognizable. For example,
y. Note that in the compact representation, and unlike the verbose and short representations, there is no distinction between singular or plural.-
HumanTime A special mode that uses designator labels that are known to be compatible with the
humantimecrate.None of
Verbose,ShortorCompactare compatible withhumantime.Compactis, on its own, nearly compatible. When usingCompact, all designator labels are parsable byhumantimeexcept for months and microseconds. For months, Jiff usesmoandmos, buthumantimeonly parsesmonths,monthandM. Jiff specifically doesn't supportMfor months because of the confusability with minutes. For microseconds, Jiff usesµswhichhumantimedoes not support parsing.Most of the designator labels Jiff uses for
Shortaren't supported byhumantime. And even when they are,humantimeis inconsistent. For example,humantimesupportssecandsecs, but onlynsecand notnsecs.Finally, for
Verbose, humantime supports spelling out some units in their entirety (e.g.,seconds) but not others (e.g.,nanosecondsis not supported byhumantime).Therefore, this custom variant is provided so that designator labels that are compatible with both Jiff and
humantime, even when there isn't a coherent concept otherwise connecting their style.
Implementations
impl Clone for Designator
fn clone(self: &Self) -> Designator
impl Copy for Designator
impl Debug for Designator
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
impl Freeze for Designator
impl RefUnwindSafe for Designator
impl Send for Designator
impl Sync for Designator
impl Unpin for Designator
impl UnsafeUnpin for Designator
impl UnwindSafe for Designator
impl<T> Any for Designator
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Designator
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Designator
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Designator
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> From for Designator
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Designator
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for Designator
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 Designator
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Designator
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>