Open
Description
Note: There is no breaking change current planned. This issue is to keep track of things that may happen when there is a breaking change at some undetermined point in the future. Items are in no particular order.
Potential changes
These are mostly things that I have thought about at some point, with varying levels of certainty.
- Eliminate
large-dates
feature flag. Support the ±999,999 range of years unconditionally, adding a modifier to the[year]
component to solve the issue of ambiguity. - Remove the
serde-well-known
feature flag, which is already deprecated in favor of using the relevant flags (serde
,formatting
, and/orparsing
) directly. - Simplify error handling. Anonymous enums would be wonderful but are not required. In particular, the large number of conversions should be cut down, as many of them exist when they can already be performed transitively. The amount of information exposed should be restricted to as little as necessary, as this has caused issues in the past.
- Remove anything deprecated. This is currently minimal.
- Make
FormatItem
opaque and requireFormatItem::Literal
to be valid UTF-8. Likewise forOwnedFormatItem
. - Remove
Copy
implementation forParsed
. - Use ranged integers in public APIs. This would currently require adding countless new methods.
- Rename
Duration
toSignedDuration
or something else. - Make
Duration::seconds
generic overi64
,f32
, andf64
. Similarly forsaturaturating_seconds_*
andchecked_seconds_*
. Alternatively, have aseconds_float
method that is generic while keeping the integer case separate. - Remove
Duration::time_fn
. This is a carry-over fromtime
0.1 and was presumably meant as a poor man's benchmarking tool.Instant
is not meant to be used in that manner. - Remove
time::Instant
in favor of an extension trait onstd::time::Instant
. This would reduce the number of trait implementations needed. The extension trait was added in v0.3.35, withtime::Instant
being deprecated at the same time. - Semantically permit modifiers on
[optional]
and[first]
(needed for Permit skipping[optional]
values when formatting #708)