Ralf Jung
66351a6184
get rid of a whole bunch of unnecessary rustc_const_unstable attributes
2024-11-02 09:59:55 +01:00
Josh Stone
f204e2c23b
replace placeholder version
...
(cherry picked from commit 567fd9610c
)
2024-10-15 20:13:55 -07:00
George Bateman
4e438f7d6b
Fix two const-hacks
2024-10-14 20:50:40 +01:00
Trevor Gross
19f6c17df4
Stabilize const_option
...
This makes the following API stable in const contexts:
impl<T> Option<T> {
pub const fn as_mut(&mut self) -> Option<&mut T>;
pub const fn expect(self, msg: &str) -> T;
pub const fn unwrap(self) -> T;
pub const unsafe fn unwrap_unchecked(self) -> T;
pub const fn take(&mut self) -> Option<T>;
pub const fn replace(&mut self, value: T) -> Option<T>;
}
impl<T> Option<&T> {
pub const fn copied(self) -> Option<T>
where T: Copy;
}
impl<T> Option<&mut T> {
pub const fn copied(self) -> Option<T>
where T: Copy;
}
impl<T, E> Option<Result<T, E>> {
pub const fn transpose(self) -> Result<Option<T>, E>
}
impl<T> Option<Option<T>> {
pub const fn flatten(self) -> Option<T>;
}
The following functions make use of the unstable
`const_precise_live_drops` feature:
- `expect`
- `unwrap`
- `unwrap_unchecked`
- `transpose`
- `flatten`
Fixes: <https://github.com/rust-lang/rust/issues/67441 >
2024-10-12 17:07:13 -04:00
Ralf Jung
181e667626
stabilize duration_consts_float
2024-10-11 18:23:30 +02:00
Ralf Jung
332fa6aa6e
add FIXME(const-hack)
2024-09-08 23:08:40 +02:00
Literally Void
e2484be0c7
docs: add digit separators in Duration
examples
2024-09-03 16:01:33 -07:00
Tshepang Mbambo
af79a6396c
time.rs: remove "Basic usage text"
...
Only one example is given (for each method)
2024-08-02 05:16:01 +02:00
bors
f8060d282d
Auto merge of #128083 - Mark-Simulacrum:bump-bootstrap, r=albertlarsan68
...
Bump bootstrap compiler to new beta
https://forge.rust-lang.org/release/process.html#master-bootstrap-update-t-2-day-tuesday
2024-07-30 17:49:08 +00:00
Mark Rousskov
e8644f85b8
Update CURRENT_RUSTC_VERSION
2024-07-28 14:46:29 -04:00
John Arundel
a19472a93e
Fix doc nits
...
Many tiny changes to stdlib doc comments to make them consistent (for example
"Returns foo", rather than "Return foo", per RFC1574), adding missing periods, paragraph
breaks, backticks for monospace style, and other minor nits.
https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md#appendix-a-full-conventions-text
2024-07-26 13:26:33 +01:00
Ole Bertram
7f383d098a
Stabilize duration_abs_diff
2024-06-29 21:03:12 +02:00
Sky
9bbf3d9805
docs: say "includes" instead of "does include"
2024-06-28 00:01:32 -04:00
Pietro Albini
be9e27e490
replace version placeholder
2024-06-11 16:52:02 +02:00
John Millikin
a8234d5f87
Fix copy-paste error in Duration::from_weeks
panic message.
2024-05-30 08:40:48 +09:00
Matthias Krüger
80aea305d3
Rollup merge of #124667 - newpavlov:stabilize_div_duration, r=jhpratt
...
Stabilize `div_duration`
Closes #63139
2024-05-25 22:15:18 +02:00
Noa
53b317710d
Inline Duration construction into Duration::from_{millis,micros,nanos}
2024-05-17 18:37:59 -05:00
Noa
35522a9e09
Don't call Duration::new unnecessarily in Duration::from_secs
2024-05-17 14:26:50 -05:00
Artyom Pavlov
8da41b107d
Divide float nanoseconds instead of seconds
2024-05-15 00:38:34 +03:00
Артём Павлов [Artyom Pavlov]
6d223bb6a1
Use CURRENT_RUSTC_VERSION
2024-05-03 17:42:34 +03:00
Артём Павлов [Artyom Pavlov]
1f1653c328
Stabilize div_duration
2024-05-03 17:31:55 +03:00
Jacob Trueb
3ad0618076
Fix cannot usage in time.rs
2024-04-24 17:37:44 +00:00
Pavel Grigorenko
f2ec0d3d26
Implement Duration::as_millis_{f64,f32}
2024-03-14 01:37:12 +03:00
Matthias Krüger
ba405a47bd
Rollup merge of #120307 - djc:duration-constructors, r=Mark-Simulacrum
...
core: add Duration constructors
Add more `Duration` constructors.
Tracking issue: #120301 .
These match similar convenience constructors available on both `chrono::Duration` and `time::Duration`.
What's the best ordering for these with respect to the existing constructors?
2024-02-11 08:25:42 +01:00
Matthias Krüger
a576e81b1d
Rollup merge of #119242 - BenWiederhake:dev-from-nanos, r=joshtriplett
...
Suggest less bug-prone construction of Duration in docs
std::time::Duration has a well-known quirk: Duration::as_nanos() returns u128 [1], but Duration::from_nanos() takes u64 [2]. So these methods cannot easily roundtrip [3]. It is not possible to simply accept u128 in from_nanos [4], because it requires breaking other API [5].
It seems to me that callers have basically only two options:
1. `Duration::from_nanos(d.as_nanos() as u64)`, which is the "obvious" and buggy approach.
2. `Duration::new(d.as_secs(), d.subsecs_nanos())`, which only becomes apparent after reading and digesting the entire Duration struct documentation.
I suggest that the documentation of `from_nanos` is changed to make option 2 more easily discoverable.
There are two major usecases for this:
- "Weird math" operations that should not be supported directly by `Duration`, like squaring.
- "Disconnected roundtrips", where the u128 value is passed through various other stack frames, and perhaps reconstructed into a Duration on a different machine.
In both cases, it seems like a good idea to not tempt people into thinking "Eh, u64 is good enough, what could possibly go wrong!". That's why I want to add a note that points out the similarly-easy and *safe* way to reconstruct a Duration.
[1] https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.as_nanos
[2] https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.from_nanos
[3] https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=fa6bab2b6b72f20c14b5243610ea1dde
[4] https://github.com/rust-lang/rust/issues/103332
[5] https://github.com/rust-lang/rust/issues/51107#issuecomment-392353166
2024-02-11 08:25:41 +01:00
Dirkjan Ochtman
e077ff0eed
core: add Duration constructors
2024-01-24 14:24:57 +01:00
Utkarsh Gupta
8a850cd12b
std/time: avoid divisions in Duration::new
2024-01-24 11:10:14 +00:00
Ben Wiederhake
27ba1c1a8c
Suggest less bug-prone construction of Duration in docs
2024-01-16 21:11:42 +01:00
Ole Bertram
0ac438c8d4
Add Duration::abs_diff
2023-11-05 19:45:17 +01:00
Elichai Turkel
92c9bcdff4
Add missing inline attributes to Duration trait impls
2023-10-03 18:39:56 +03:00
Jacob Pratt
f1d4e48c9c
Fix implementation of Duration::checked_div
2023-07-30 04:00:02 -04:00
Mara Bos
a77159341e
Use fmt::Alignment instead of fmt::rt::v1::Alignment.
2023-04-20 18:03:47 +02:00
Deadbeef
63e0ddbf1d
core is now compilable
2023-04-16 07:20:26 +00:00
Mark Rousskov
455a7bc685
Bump version placeholders to release
2022-11-06 17:11:02 -05:00
Ryan Lopopolo
95040a70d7
Stabilize duration_checked_float
...
Tracking issue:
- https://github.com/rust-lang/rust/issues/83400
2022-10-15 12:02:13 -07:00
beetrees
c9948f5c5f
Fix Duration::{try_,}from_secs_f{32,64}(-0.0)
2022-10-14 16:07:09 +01:00
beetrees
e409ce2159
Fix integer overflow in format!("{:.0?}", Duration::MAX)
2022-09-29 23:06:22 +01:00
beetrees
a913277829
Add a niche to Duration
, unix SystemTime
, and non-apple Instant
2022-09-28 18:15:10 +01:00
Dezhi Wu
b1430fb7ca
Fix a bunch of typo
...
This PR will fix some typos detected by [typos].
I only picked the ones I was sure were spelling errors to fix, mostly in
the comments.
[typos]: https://github.com/crate-ci/typos
2022-08-31 18:24:55 +08:00
Michael Goulet
efa182f3db
Rollup merge of #100353 - theli-ua:master, r=joshtriplett
...
Fix doc links in core::time::Duration::as_secs
2022-08-10 09:28:23 -07:00
Anton Romanov
4a71447d38
Fix doc links in core::time::Duration::as_secs
2022-08-09 21:15:06 -07:00
Eric Holk
c18f22058b
Rename integer log* methods to ilog*
...
This reflects the concensus from the libs team as reported at
https://github.com/rust-lang/rust/issues/70887#issuecomment-1209513261
Co-authored-by: Yosh Wuyts <github@yosh.is>
2022-08-09 10:20:49 -07:00
Anton Romanov
63be9a95b6
Update Duration::as_secs doc to point to as_secs_f64/32 for including fractional part
...
Rather than suggesting to calculate manually
2022-08-08 18:32:16 -07:00
Michael Goulet
e3813e46a2
Rollup merge of #96051 - newpavlov:duration_rounding, r=nagisa,joshtriplett
...
Use rounding in float to Duration conversion methods
Closes #96045
2022-05-26 20:15:07 -07:00
Артём Павлов [Artyom Pavlov]
6495963d5a
fmt
2022-05-27 05:15:22 +03:00
Артём Павлов [Artyom Pavlov]
38609cd8a9
fix nanos overflow for f64
2022-05-27 04:59:01 +03:00
Artyom Pavlov
06af3a63a5
add debug asserts
2022-05-27 00:22:56 +00:00
Артём Павлов [Artyom Pavlov]
26f859463e
tweak doctests
2022-05-25 05:14:30 +03:00
Артём Павлов [Artyom Pavlov]
c2d8445cde
implement tie to even
2022-05-25 05:01:11 +03:00
Артём Павлов
65c75b2db7
Use rounding in float to Duration conversion methods
2022-04-14 20:44:09 +03:00