Skip to main content

Module model

Module model 

Source
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.
GnssWeekTow
A GNSS week number + time-of-week, tagged by constellation.
Instant
A point in time, always tagged with its TimeScale.
JulianDateSplit
Two-part Julian date (whole day boundary + day fraction).

Enums§

InstantRepr
Internal representation backing an Instant.
TimeModelError
Error returned when constructing public time model values from invalid input.
TimeScale
Named time scales supported by the time model.