#[non_exhaustive]pub enum Spacing {
None,
BetweenUnits,
BetweenUnitsAndDesignators,
}
Expand description
Configuration for SpanPrinter::spacing
.
This controls how much or how little whitespace is inserted into a
“friendly” formatted duration. Typically, one wants less whitespace when
using short unit designators (i.e., y
instead of years
), and more
whitespace when using longer unit designators.
§Example
use jiff::{
fmt::friendly::{Designator, Spacing, SpanPrinter},
ToSpan,
};
let span = 1.year().months(2);
// The default tries to balance spacing with compact
// unit designators.
let printer = SpanPrinter::new();
assert_eq!(printer.span_to_string(&span), "1y 2mo");
// But you can use slightly more descriptive
// designators without being too verbose.
let printer = SpanPrinter::new()
.designator(Designator::Short);
assert_eq!(printer.span_to_string(&span), "1yr 2mos");
// When spacing is removed, it usually looks nicer
// to use compact unit designators.
let printer = SpanPrinter::new()
.spacing(Spacing::None)
.designator(Designator::Compact);
assert_eq!(printer.span_to_string(&span), "1y2mo");
// Conversely, when using more spacing, it usually
// looks nicer to use verbose unit designators.
let printer = SpanPrinter::new()
.spacing(Spacing::BetweenUnitsAndDesignators)
.designator(Designator::Verbose);
assert_eq!(printer.span_to_string(&span), "1 year 2 months");
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
None
Does not insert any ASCII whitespace.
Except in the case that SpanPrinter::hours_minutes_seconds
is
enabled and one is formatting a span with non-zero calendar units, then
an ASCII whitespace is inserted between the calendar and non-calendar
units even when Spacing::None
is used.
BetweenUnits
Inserts one ASCII whitespace between the unit designator and the next unit value.
For example, 1year 2months
.
BetweenUnitsAndDesignators
Inserts one ASCII whitespace between the unit value and the unit designator, in addition to inserting one ASCII whitespace between the unit designator and the next unit value.
For example, 1 year 2 months
.