Skip to content

Tracking Issue for duration_constructors_lite #140881

Open
@Dietr1ch

Description

@Dietr1ch

Feature gate: #![feature(duration_constructors_lite)]

This is a tracking issue for duration_constructors_lite.

duration_constructors_lite implements the non-controversial bits of duration_constructors.

Public API

  • std::time::Duration
    • from_mins(u64)
    • from_hours(u64)

History

(Remember to update the S-tracking-* label when checking boxes.)

  • Original duration_constructors implementation core: add Duration constructors #120307
    • Adds new Duration constructors from_mins, from_hours, from_days and from_weeks.
    • Daylight savings time coupled with possible confusion between "standard/scientific/stopwatch" time and "civil/human" time makes using from_days and from_weeks wrong too easy.
    • Without a CivilDuration type to disambiguate Duration as the "standard/scientific" time duration its safer to avoid introducing from_days and from_weeks even if Duration explicitly aims to model "standard/scientific".

Steps

  • Implementation: #140882
  • Final comment period (FCP)1
  • Stabilization PR

Unresolved Questions

  • Best way to implement from_days and other larger quantities in the future.
    • It seems we need a Civil time type in std to help avoid mis-interpreting std::time::Duration.

Misc

I want to thank all folks who participated in #120301. It's not fun to argue online for so long, but very much needed to grow the language in a sound way as it's even harder to undo mistakes.

Footnotes

  1. https://std-dev-guide.rust-lang.org/feature-lifecycle/stabilization.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCS-tracking-unimplementedStatus: The feature has not been implemented.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.disposition-mergeThis issue / PR is in PFCP or FCP with a disposition to merge it.final-comment-periodIn the final comment period and will be merged soon unless new substantive objections are raised.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions