#[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.