#[non_exhaustive]pub enum Direction {
Auto,
Sign,
ForceSign,
Suffix,
}
Expand description
Configuration for SpanPrinter::direction
.
This controls how the sign, if at all, is included in the formatted duration.
When using the “hours-minutes-seconds” format, Auto
and Suffix
are
both treated as equivalent to Sign
when all calendar units (days and
greater) are zero.
§Example
use jiff::{fmt::friendly::{Direction, SpanPrinter}, SignedDuration};
let duration = SignedDuration::from_secs(-1);
let printer = SpanPrinter::new();
assert_eq!(printer.duration_to_string(&duration), "1s ago");
let printer = SpanPrinter::new().direction(Direction::Sign);
assert_eq!(printer.duration_to_string(&duration), "-1s");
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Auto
Sets the sign format based on other configuration options.
When SpanPrinter::spacing
is set to Spacing::None
, then
Auto
is equivalent to Sign
.
When using the “hours-minutes-seconds” format, Auto
is equivalent to
Sign
when all calendar units (days and greater) are zero.
Otherwise, Auto
is equivalent to Suffix
.
This is the default used by SpanPrinter
.
Sign
When set, a sign is only written when the span or duration is negative. And when it is written, it is written as a prefix of the formatted duration.
ForceSign
A sign is always written, with -
for negative spans and +
for all
non-negative spans. The sign is always written as a prefix of the
formatted duration.
Suffix
When set, a sign is only written when the span or duration is negative.
And when it is written, it is written as a suffix via a trailing ago
string.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Direction
impl RefUnwindSafe for Direction
impl Send for Direction
impl Sync for Direction
impl Unpin for Direction
impl UnwindSafe for Direction
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more