-
-
Notifications
You must be signed in to change notification settings - Fork 292
Open
Labels
C-breakingCategory: breaking changeCategory: breaking changeC-tracking-issueCategory: tracking issue for a feature/releaseCategory: tracking issue for a feature/release
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. This issue is not being updated on a regular basis, as I am using a more detailed approach to tracking items privately.
Potential changes
These are mostly things that I have thought about at some point, with varying levels of certainty.
- Eliminate
large-datesfeature flag. Support years in the range0..=9999. Given that the Gregorian calendar is multiple days off on either end, there is little use for anything beyond this range, particularly with day-level (or even nanosecond-level) precision. - Remove the
serde-well-knownfeature 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 isn't that much and is already largely hidden by default in documentation.
- Merge
FormatItemandOwnedFormatIteminto a single opaque item. Require literals to be valid UTF-8. - Remove
Copyimplementation forParsed. - Use ranged integers in public APIs. This would currently require adding countless new methods.
- Rename
DurationtoSignedDurationor something else. - Make
Duration::secondsgeneric overi64,f32, andf64. Similarly forsaturaturating_seconds_*andchecked_seconds_*. Alternatively, have aseconds_floatmethod that is generic while keeping the integer case separate. - Remove
Duration::time_fn. This is a carry-over fromtime0.1 and was presumably meant as a poor man's benchmarking tool.Instantis not meant to be used in that manner. - Remove
time::Instantin 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::Instantbeing deprecated at the same time. - Semantically permit modifiers on
[optional]and[first](needed for Permit skipping[optional]values when formatting #708) - Change default (de)serialization to ISO 8601 (or possibly Temporal) (Change default
Serialize/Deserializeformats to ISO 8601 #672) - Remove support for v1 format descriptions
- Rename
PrimitiveDateTimetoPlainDateTime - Change modifiers to be opaque, providing builder methods instead
- Merge
FormattableandParsableinto a singleFormatDescriptiontrait, which will be generic overconst FORMATTABLE: boolandconst PARSABLE: bool. - Reject nonsensical combinations of modifiers (i.e. a numerical month doesn't care whether it's case sensitive or not)
- Support
fmt::Writefor formatting. - Move
time::converttotime::unitand provide additional implementations (potentially useful for generic code).
mati865, lpotthast, Virgiel, FeldrinH and rMazeiksjoseluis, jeff-hiner, FeldrinH and Anders429
Metadata
Metadata
Assignees
Labels
C-breakingCategory: breaking changeCategory: breaking changeC-tracking-issueCategory: tracking issue for a feature/releaseCategory: tracking issue for a feature/release