Skip to content

Tracking Issue for SystemTime::MIN and SystemTime::MAX #149067

@cvengler

Description

@cvengler

Feature gate: #![feature(time_systemtime_limits)]

This is a tracking issue for rust-lang/libs-team#692

Public API

use std::time::{Duration, SystemTime};

// Adding the smallest possible Duration to SystemTime::MAX shall fail ...
assert!(SystemTime::MAX.checked_add(Duration::new(0, 1)).is_none());

// ... whereas subtracting it shall be fine.
assert!(SystemTime::MAX.checked_sub(Duration::new(0, 1)).is_some());

// Subtracting the smallest possible Duration from SystemTime::MIN shall fail ...
assert!(SystemTime::MIN.checked_sub(Duration::new(0, 1)).is_none());

// ... whereas adding it shall be fine.
assert!(SystemTime::MIN.checked_add(Duration::new(0, 1)).is_some());

Steps / History

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

Unresolved Questions

  • What should the bounds be on 32-bit platforms? See discussion in Add SystemTime::{MIN, MAX} #148825 (comment). Maybe better resolved by using 64-bit wide APIs on 32-bit platforms (such as __clock_gettime64 or clock_gettime_nsec_np)

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.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions