|
1 |
| -#![cfg(feature = "sys")] |
2 |
| - |
3 | 1 | use crate::builtins::{
|
4 | 2 | core::{Now, PlainDate, PlainDateTime, PlainTime},
|
5 | 3 | TZ_PROVIDER,
|
6 | 4 | };
|
7 |
| -use crate::sys; |
8 |
| -use crate::{time::EpochNanoseconds, TemporalError, TemporalResult, TimeZone}; |
| 5 | +use crate::{TemporalError, TemporalResult, TimeZone}; |
9 | 6 |
|
10 | 7 | impl Now {
|
11 | 8 | /// Returns the current system time as a [`PlainDateTime`] with an optional
|
12 | 9 | /// [`TimeZone`].
|
13 | 10 | ///
|
14 | 11 | /// Enable with the `compiled_data` and `sys` feature flags.
|
15 |
| - pub fn plain_datetime_iso(timezone: Option<TimeZone>) -> TemporalResult<PlainDateTime> { |
| 12 | + pub fn plain_date_time_iso(self, time_zone: Option<TimeZone>) -> TemporalResult<PlainDateTime> { |
16 | 13 | let provider = TZ_PROVIDER
|
17 | 14 | .lock()
|
18 | 15 | .map_err(|_| TemporalError::general("Unable to acquire lock"))?;
|
19 |
| - let timezone = timezone.unwrap_or(TimeZone::IanaIdentifier(sys::get_system_timezone()?)); |
20 |
| - let system_nanos = sys::get_system_nanoseconds()?; |
21 |
| - let epoch_nanos = EpochNanoseconds::try_from(system_nanos)?; |
22 |
| - Now::plain_datetime_iso_with_provider_and_system_info(epoch_nanos, timezone, &*provider) |
| 16 | + self.plain_date_time_iso_with_provider(time_zone, &*provider) |
23 | 17 | }
|
24 | 18 |
|
25 | 19 | /// Returns the current system time as a [`PlainDate`] with an optional
|
26 | 20 | /// [`TimeZone`].
|
27 | 21 | ///
|
28 | 22 | /// Enable with the `compiled_data` and `sys` feature flags.
|
29 |
| - pub fn plain_date_iso(timezone: Option<TimeZone>) -> TemporalResult<PlainDate> { |
| 23 | + pub fn plain_date_iso(self, time_zone: Option<TimeZone>) -> TemporalResult<PlainDate> { |
30 | 24 | let provider = TZ_PROVIDER
|
31 | 25 | .lock()
|
32 | 26 | .map_err(|_| TemporalError::general("Unable to acquire lock"))?;
|
33 |
| - let timezone = timezone.unwrap_or(TimeZone::IanaIdentifier(sys::get_system_timezone()?)); |
34 |
| - let system_nanos = sys::get_system_nanoseconds()?; |
35 |
| - let epoch_nanos = EpochNanoseconds::try_from(system_nanos)?; |
36 |
| - Now::plain_date_iso_with_provider_and_system_info(epoch_nanos, timezone, &*provider) |
| 27 | + self.plain_date_iso_with_provider(time_zone, &*provider) |
37 | 28 | }
|
38 | 29 |
|
39 | 30 | /// Returns the current system time as a [`PlainTime`] with an optional
|
40 | 31 | /// [`TimeZone`].
|
41 | 32 | ///
|
42 | 33 | /// Enable with the `compiled_data` and `sys` feature flags.
|
43 |
| - pub fn plain_time_iso(timezone: Option<TimeZone>) -> TemporalResult<PlainTime> { |
| 34 | + pub fn plain_time_iso(self, time_zone: Option<TimeZone>) -> TemporalResult<PlainTime> { |
44 | 35 | let provider = TZ_PROVIDER
|
45 | 36 | .lock()
|
46 | 37 | .map_err(|_| TemporalError::general("Unable to acquire lock"))?;
|
47 |
| - let timezone = timezone.unwrap_or(TimeZone::IanaIdentifier(sys::get_system_timezone()?)); |
48 |
| - let system_nanos = sys::get_system_nanoseconds()?; |
49 |
| - let epoch_nanos = EpochNanoseconds::try_from(system_nanos)?; |
50 |
| - Now::plain_time_iso_with_provider_and_system_info(epoch_nanos, timezone, &*provider) |
| 38 | + self.plain_time_with_provider(time_zone, &*provider) |
51 | 39 | }
|
52 | 40 | }
|
0 commit comments