Expand description
Public time model type family.
A bare Epoch is ambiguous (element epoch vs observation epoch vs product
epoch), so the public surface is a concrete family of types that always name
their scale and use a precision-preserving representation:
TimeScale- the named time scale of an instant.Instant- a scale + a split-Julian-date / integer-nanosecond repr.Duration- an integer-nanosecond elapsed interval.JulianDateSplit- the two-part (whole + fraction) Julian date used to avoid catastrophic cancellation, matching the Skyfield split convention.GnssWeekTow- a GNSS week number + time-of-week with rollover handling.
These are representation/value types only. The parity-critical conversion
numerics live in crate::astro::time::scales; this module deliberately holds no
transcendental math so it cannot perturb the 0-ULP contract.
Re-exports§
pub use crate::astro::constants::time::SECONDS_PER_WEEK;
Structs§
- Duration
- An elapsed interval, stored as exact integer nanoseconds.
- Gnss
Week Tow - A GNSS week number + time-of-week, tagged by constellation.
- Instant
- A point in time, always tagged with its
TimeScale. - Julian
Date Split - Two-part Julian date (whole day boundary + day fraction).
Enums§
- Instant
Repr - Internal representation backing an
Instant. - Time
Model Error - Error returned when constructing public time model values from invalid input.
- Time
Scale - Named time scales supported by the time model.