diff --git a/src/builtins/compiled/duration/tests.rs b/src/builtins/compiled/duration/tests.rs index 7a3ed2e79..72ae0e4a1 100644 --- a/src/builtins/compiled/duration/tests.rs +++ b/src/builtins/compiled/duration/tests.rs @@ -1,9 +1,10 @@ use crate::{ + duration::DateDuration, options::{ OffsetDisambiguation, RelativeTo, RoundingIncrement, RoundingMode, RoundingOptions, Unit, }, partial::PartialDuration, - Calendar, DateDuration, PlainDate, TimeZone, ZonedDateTime, + Calendar, PlainDate, TimeZone, ZonedDateTime, }; use core::{num::NonZeroU32, str::FromStr}; diff --git a/src/builtins/core/plain_time.rs b/src/builtins/core/plain_time.rs index 31ea42c94..0edd7ec8f 100644 --- a/src/builtins/core/plain_time.rs +++ b/src/builtins/core/plain_time.rs @@ -1,14 +1,17 @@ //! This module implements `Time` and any directly related algorithms. use crate::{ - builtins::{core::Duration, duration::normalized::InternalDurationRecord}, + builtins::{ + core::{DateDuration, Duration}, + duration::normalized::InternalDurationRecord, + }, iso::IsoTime, options::{ DifferenceOperation, DifferenceSettings, Overflow, ResolvedRoundingOptions, RoundingOptions, ToStringRoundingOptions, Unit, UnitGroup, }, parsers::{parse_time, IxdtfStringBuilder}, - DateDuration, TemporalError, TemporalResult, + TemporalError, TemporalResult, }; use alloc::string::String; use core::str::FromStr; diff --git a/src/lib.rs b/src/lib.rs index 51d93bece..2ca08f825 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -309,7 +309,7 @@ pub use error::TemporalError; pub use sys::Temporal; pub mod partial { - //! Partial Date/Time component records. + //! Partial date and time component records //! //! The partial records are `temporal_rs`'s method of addressing //! `TemporalFields` in the specification. @@ -322,16 +322,22 @@ pub mod partial { pub mod parsed_intermediates; // TODO: Potentially bikeshed how `EpochNanoseconds` should be exported. +/// A module for structs related to the UNIX epoch pub mod unix_time { pub use timezone_provider::epoch_nanoseconds::EpochNanoseconds; } -/// The `Now` module includes type for building a Now. +/// The `Now` module includes type for building a Now pub mod now { pub use crate::builtins::Now; } -/// This module exports all of the field types. +/// Duration related types +pub mod duration { + pub use crate::builtins::DateDuration; +} + +/// Calendar field records pub mod fields { pub use crate::builtins::{ calendar::{CalendarFields, YearMonthCalendarFields}, @@ -339,10 +345,10 @@ pub mod fields { }; } +// TODO: Should we be exporting MonthCode and UtcOffset here. pub use crate::builtins::{ calendar::{Calendar, MonthCode}, core::timezone::{TimeZone, UtcOffset}, - core::DateDuration, Duration, Instant, PlainDate, PlainDateTime, PlainMonthDay, PlainTime, PlainYearMonth, ZonedDateTime, }; @@ -428,8 +434,11 @@ impl Sign { } // Relevant numeric constants + /// Nanoseconds per day constant: 8.64e+13 +#[doc(hidden)] pub const NS_PER_DAY: u64 = MS_PER_DAY as u64 * 1_000_000; +#[doc(hidden)] pub const NS_PER_DAY_NONZERO: core::num::NonZeroU128 = if let Some(nz) = core::num::NonZeroU128::new(NS_PER_DAY as u128) { nz @@ -437,6 +446,7 @@ pub const NS_PER_DAY_NONZERO: core::num::NonZeroU128 = unreachable!() }; /// Milliseconds per day constant: 8.64e+7 +#[doc(hidden)] pub const MS_PER_DAY: u32 = 24 * 60 * 60 * 1000; /// Max Instant nanosecond constant #[doc(hidden)] diff --git a/src/sys.rs b/src/sys.rs index 96a9cbfb6..a530dc883 100644 --- a/src/sys.rs +++ b/src/sys.rs @@ -21,16 +21,21 @@ use web_time::{SystemTime, UNIX_EPOCH}; // pub struct Temporal(SystemTime) // +/// The Temporal object for accessing current system time #[cfg(feature = "sys")] pub struct Temporal; #[cfg(feature = "sys")] impl Temporal { + /// Get a `Now` object for the default host system. pub fn now() -> Now { Now::new(DefaultHostSystem) } } +/// A default host system implementation +/// +/// This implementation is backed by [`SystemTime`] and [`iana_time_zone`] #[cfg(feature = "sys")] pub struct DefaultHostSystem; diff --git a/temporal_capi/src/duration.rs b/temporal_capi/src/duration.rs index 9c1373a5b..e9e2fc7d2 100644 --- a/temporal_capi/src/duration.rs +++ b/temporal_capi/src/duration.rs @@ -21,7 +21,7 @@ pub mod ffi { #[diplomat::opaque] #[diplomat::transparent_convert] - pub struct DateDuration(pub(crate) temporal_rs::DateDuration); + pub struct DateDuration(pub(crate) temporal_rs::duration::DateDuration); pub struct PartialDuration { pub years: DiplomatOption, @@ -58,7 +58,7 @@ pub mod ffi { weeks: i64, days: i64, ) -> Result, TemporalError> { - temporal_rs::DateDuration::new(years, months, weeks, days) + temporal_rs::duration::DateDuration::new(years, months, weeks, days) .map(|x| Box::new(DateDuration(x))) .map_err(Into::into) }